计算机网络socket编程实验报告.docx
《计算机网络socket编程实验报告.docx》由会员分享,可在线阅读,更多相关《计算机网络socket编程实验报告.docx(6页珍藏版)》请在沃文网上搜索。
1、Socket编程实验报告一、程序代码(1)服务器端#include #include #pragma comment(lib, ws2_32.lib)void main() WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested = MAKEWORD( 1, 1 );err = WSAStartup( wVersionRequested, &wsaData );if ( err != 0 ) return; if ( LOBYTE( wsaData.wVersion ) != 1 | HIBYTE( wsaData.wV
2、ersion ) != 1 ) WSACleanup( );return; SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0); SOCKADDR_IN addrSrv; addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);addrSrv.sin_family=AF_INET;addrSrv.sin_port=htons(6000); bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR);/ 绑定端口listen(sockSrv,SOMAXCONN); /SOMAXCO
3、NN由系统确定请求数SOCKADDR_IN addrClient;/ 连接上的客户端ip地址int len=sizeof(SOCKADDR); while(1)SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);/ 接受客户端连接,获取客户端的ip地址 char sendBuf50;sprintf(sendBuf,Welcome %s to here!,inet_ntoa(addrClient.sin_addr);/ 组合消息发送出去 send(sockConn,sendBuf,strlen(sendBuf)+1,0);/ 发
4、送消息到客户端 char recvBuf50; recv(sockConn,recvBuf,50,0);/ 接受客户端消息 printf(%sn,recvBuf); closesocket(sockConn); WSACleanup();/断开连接 (2)客户端代码#include #include #pragma comment(lib, ws2_32.lib)void main() WORD wVersionRequested; WSADATA wsaData;/WSAata用来存储系统传回的关于WinSocket的资料。 int err; wVersionRequested = MAKE
5、WORD( 1, 1 ); err = WSAStartup( wVersionRequested, &wsaData ); if ( err != 0 ) return; if ( LOBYTE( wsaData.wVersion ) != 1 |HIBYTE( wsaData.wVersion ) != 1 ) WSACleanup( ); return; SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);/ AF_INET .tcp连接 ,初始化连接与端口号 SOCKADDR_IN addrSrv; addrSrv.sin_addr.S_un
6、.S_addr=inet_addr(127.0.0.1);/本机地址,服务器在本机开启 addrSrv.sin_family=AF_INET; addrSrv.sin_port=htons(6000);/ 设置端口号 connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR);/连接服务器 char recvBuf50; recv(sockClient,recvBuf,50,0);/接受数据 printf(%sn,recvBuf);send(sockClient,hello,strlen(hello)+1,0);/发送数据 closesock
7、et(sockClient);/关闭连接 WSACleanup();二、运行结果:三、主要结构体、命令、函数声明及作用对于一些主要的类、函数代码,主要通过百度逐步了解它们的功能。以服务器端代码为例,每一段代码作用大致如下: 首先声明一个WORD变量,WSADATA这个结构被用来存储 被WSAStartup函数调用后返回的 Windows Sockets 数据。它包含Winsock.dll 执行的数据。为了在应用程序当中调用任何一个Winsock API函数,首先第一件事情就是必须通过WSAStartup函数完成对Winsock服务的初始化,因此需要调用WSAStartup函数。该函数的第一个参
8、数指明程序请求使用的Socket版本,其中高位字节指明副版本、低位字节指明主版本;操作系统利用第二个参数返回请求的Socket的版本信息。wVersion 是Windows Sockets DLL期望调用者使用的Windows Sockets规范的版本。 高位字节存储副版本号, 低位字节存储主版本号,可以用WORD MAKEWORD(BYTE,BYTE ) 返回这个值,例如:MAKEWORD(1,1)。MAKEWORE(1,1)和MAKEWORD(2,2)的区别在于,前者只能一次接收一次,不能马上发送,而后者能。SOCKET socket( int af, int type, int prot
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机网络 socket 编程 实验 报告