资源描述:
《sockets编程基础c语言示例new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、TCP/IP编程基础示例服务端应答程序:/*******************************************************说明:本程序根据《TCP/IPSocketsinC》第二章改写目的:建立一个最简版本的应答服务器时间:2011-02-24文件名:Server.c*******************************************************/#include#include#include#defineMAXPENDING5/*最大的等待连
2、接请求数*/#defineRCVBUFSIZE32/*最大的接收字节数*/voidHandleTCPClient(intclntSocket);/*处理客户端连接的函数*/intmain(intargc,char*argv[]){intservSock;/*服务端的Socket*/intclntSock;/*客户端的Socket*/structsockaddr_inechoServAddr;/*本地地址*/structsockaddr_inechoClntAddr;/*客户端地址*/unsignedshortechoServPort;/*服务端口*/unsigne
3、dintclntLen;/*客户端地址数据结构的长度*/WSADATAwsaData;/*WinSock建立连接的结构体*//*初始化WinSock2.0*/WSAStartup(MAKEWORD(2,0),&wsaData);/*加载Winsock2.0DLL*//*输入服务端口号*/printf("请输入服务器端口号(1025~65535):");scanf("%d",&echoServPort);/*建立接收连接的Socket*/servSock=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);/*构造本地地址的结构体*/
4、memset(&echoServAddr,0,sizeof(echoServAddr));/*结构体数据全部清零*/echoServAddr.sin_family=AF_INET;/*Internet地址协议*/echoServAddr.sin_addr.s_addr=htonl(INADDR_ANY);/*任意地址*/echoServAddr.sin_port=htons(echoServPort);/*本地端口*//*绑定本地地址*/bind(servSock,(structsockaddr*)&echoServAddr,sizeof(echoServAddr
5、));第1页共4页/*监听连接请求*/listen(servSock,MAXPENDING);for(;;)/*与客户端通信,收发信息*/{/*设置in-out参数的大小*/clntLen=sizeof(echoClntAddr);/*等待客户端连接*/clntSock=accept(servSock,(structsockaddr*)&echoClntAddr,&clntLen);printf("与客户端%s连接,等待接收信息",inet_ntoa(echoClntAddr.sin_addr));/*clntSock如果已经连接到一个客户端!*/Handle
6、TCPClient(clntSock);//处理客户端的消息}}/******************************************voidHandleTCPClient(intclntSocket)作用:与客户端通信,收发信息。参数:clntSocket:客户端的Socket。返回值:无。******************************************/voidHandleTCPClient(intclntSocket){charechoBuffer[RCVBUFSIZE];/*发送字符串*/charrecvBuffer[R
7、CVBUFSIZE];/*接收字符串*/intrecvMsgSize;/*接收字符串的长度*/memset(echoBuffer,0,sizeof(echoBuffer));/*信息内容清空*/memset(recvBuffer,0,sizeof(recvBuffer));/*信息内容清空*/for(;;)/*从客户端接收消息*/{/*因为接收一次不一定能全部接收,所以要判断是否全部接收*/recvMsgSize=recv(clntSocket,recvBuffer,RCVBUFSIZE,0);if((recvMsgSize==RCVBUFSIZE)
8、
9、(recv
10、MsgSi