考试网 >> IT认证 >> 水平 >> 软件指导 >> socket编程原理(六)

socket编程原理(六)

发布时间:2006-06-28 03:36     点击:
分页:上一页  1 2 [3] 4 5 6 7 8 9  下一页

#include "tcpsock.h"

int InitSocketsStruct(char * servicename) 

/* Initialize Sockets structure. If succeed then return 1, else return error code (<0) */

/* 此函数用于只需要主动套接字的客户程序,它用来获取服务信息。服务的定义

在/etc/services文件中 */

{

struct servent *servrec;

struct sockaddr_in serv_addr;

if ((servrec = getservbyname(servicename, "tcp")) == NULL) {

return(-1);



bzero((char *)&Mysock, sizeof(Sockets));

Mysock.Port = servrec->s_port; /* Service Port in Network Byte Order */

return(1); 

}

int InitPassiveSock(char * servicename) 

/* Initialize Passive Socket. If succeed then return 1, else return error code (<0) */

/* 此函数用于需要被动套接字的服务器程序,它除了获取服务信息外,还建立

一个被动套接字。*/

{

int mainsock, flag=1;

struct servent *servrec;

struct sockaddr_in serv_addr;

if ((servrec = getservbyname(servicename, "tcp")) == NULL) {

return(-1);



bzero((char *)&Mysock, sizeof(Sockets));

Mysock.Port = servrec->s_port; /* Service Port in Network Byte Order */

if((mainsock = socket(AF_INET, SOCK_STREAM, 0)) < 0) {

return(-2);

}

bzero((char *)&serv_addr, sizeof(serv_addr));

serv_addr.sin_family = AF_INET;

serv_addr.sin_port = servrec->s_port;

if (bind(mainsock, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0) {
分页:上一页  1 2 [3] 4 5 6 7 8 9  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有