socket套接字的使用

socket套接字的使用

ID:47239009

大小:56.00 KB

页数:4页

时间:2019-08-04

socket套接字的使用_第1页
socket套接字的使用_第2页
socket套接字的使用_第3页
socket套接字的使用_第4页
资源描述:

《socket套接字的使用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、socket套接字的使用socket服务器端和客户端通信,面向TCP的服务器端步骤:1、创建用于监听的套接字(socket)2、将套接字绑定到本地地址和端口上(bind)3、将套接字设为监听模式(listen)4、等待客户请求(accept),此处要不断的调用accept5、通信(send/receive),完成后返回46、关闭套接字(closesocket) 客户端步骤:1、创建套接字2、向服务器发送连接请求(connect)3、通信(send/recv)4、关闭套接字 程序代码:服务器端:?123#include#include#pragmaco

2、mment(lib,"Ws2_32.lib.")4567891011121314151617181920212223242526272829303132333435363738394041424344454647  voidmain(){      /*加载套接字库*/    WORDwVersionRequested;    //所使用套接字的版本号    WSADATAwsaData;    //存储套接字版本的有关信息    interr;      wVersionRequested=MAKEWORD(1,1);    //请求版本号,高位和低位字节均为1      err=WSAS

3、tartup(wVersionRequested,&wsaData);    //加载套接字    if(err!=0)    {        return;    }      if(LOBYTE(wsaData.wVersion)!=1

4、

5、        HIBYTE(wsaData.wVersion)!=1)    {        WSACleanup();        //如果高位或低位字节不为1终止对套接字的使用        return;    }      /*创建用于监听的套接字*/    SOCKETsockSrv=socket(AF_INET,SOCK_STREA

6、M,0);    //创建套接字,流式套接字,第三个参数设为0则自动选择合适的协议      /*绑定套接字*/    SOCKADDR_INaddrSrv;    //服务器地址信息,使用SOCKADDR_IN代替SOCKETADD,结构体的大小相等,可强制转换    addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);    addrSrv.sin_family=AF_INET;    addrSrv.sin_port=htons(600);    //使用htons函数转换为网络字节序          bind(sockSrv,(SOCKAD

7、DR*)&addrSrv,sizeof(SOCKADDR));48495051525354555657585960616263646566676869    //将监听套接字绑定到本地地址和端口上    listen(sockSrv,5);    //监听      /*等待客户到来并接收发送数据*/    SOCKADDR_INaddrClient;    //接收客户地址信息缓冲区    intlen=sizeof(SOCKADDR);      while(1){        SOCKETsockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&

8、len);        //等待接收客户连接请求,并返回连接套接字,利用这个套接字实现通信        charsendBuf[100];        sprintf(sendBuf,"Welcome%stowww.cnblogs.com/xiao-cheng",            inet_ntoa(addrClient.sin_addr));        send(sockConn,sendBuf,strlen(sendBuf)+1,0);        //发送数据,多加一个长度是字符串结束符        charrecvBuf[100];        recv(soc

9、kConn,recvBuf,100,0);        //接收数据        printf("%s",recvBuf);        closesocket(sockConn);    }}?1客户端:?1234567891011#include#include#pragmacomment(lib,"Ws2_32.lib.")  voidmain(){ 

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

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

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