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

socket编程原理(六)

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

(void) signal(SIGINT, CloseMainSock); 

(void) signal(SIGQUIT, CloseMainSock);

(void) signal(SIGTERM, CloseMainSock);

if ((retcode = InitPassiveSock("TestService")) < 0) {

printf("InitPassiveSock: error code = %d\n", retcode);

exit(-1);

}

while (1) {

retcode = QuerySocketsMsg(); /* 查询网络消息 */

if (SockMsg.AcceptNum == 1) { /* 有外来连接等待接收?*/

retcode = AcceptConnection(&sin_addr);

printf("retcode = %d, IP = %s \n", retcode, inet_ntoa(sin_addr.s_addr));

}

else if (SockMsg.AcceptNum == -1) /* 主套接字错误?*/

printf("Daemon Sockets error.\n");

for (i=0; i< * 接收外来数据 { i++)> 

if ((retcode = RecvPacket(SockMsg.ReadQueue[i], buf, 32)) > 0)

printf("sockno %d Recv string = %s \n", SockMsg.ReadQueue[i], buf);

else /* 返回数据长度为零,指示连接中断,关闭套接字。*/

CloseConnection(SockMsg.ReadQueue[i]);

}

} /* end while */

}

2.5.4 简单客户程序示例

/* File Name: client.c */

/* 客户程序在执行时,先初始化数据结构,然后等待用户输入命令。它识别四个命令:

conn(ect): 和服务器建立连接;

send: 给指定连接发送数据;

clos(e): 关闭指定连接;

quit: 退出客户程序。

*/

#include "tcpsock.h"

main(argc, argv)

int argc;

char **argv;

{

char cmd_buf[16];

struct in_addr sin_addr;

int sockno1, retcode;

char *buf = "This is a string for test.";

sin_addr.s_addr = inet_addr("166.111.5.249"); /* 运行服务器程序的主机的IP地址 */

if ((retcode = InitSocketsStruct("TestService")) < 0) { /* 初始化数据结构 */

printf("InitSocketsStruct: error code = %d\n", retcode);

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