sockets编程基础c语言示例new

sockets编程基础c语言示例new

ID:34525974

大小:76.08 KB

页数:4页

时间:2019-03-07

sockets编程基础c语言示例new_第1页
sockets编程基础c语言示例new_第2页
sockets编程基础c语言示例new_第3页
sockets编程基础c语言示例new_第4页
资源描述:

《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

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。