网络实践课程设计报告.doc





《网络实践课程设计报告.doc》由会员分享,可在线阅读,更多相关《网络实践课程设计报告.doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机网络实践设计报告学院: 计算机 班级: 成教2012业余 教师: 李领治 学号: 姓名: 成绩: 实验目的:掌握Winsock2.0套接字编程技术的基本方法。实验要求:运用TCP/IP Winsock2.0套接字编程技术,使用VC编写一个面向连接通信的服务端程序与客户端程序,服务器先与端口3000绑定,然后等待客户连接,连接成功后就可与客户端互相收、发信息。交互中,通信任一方只要发送 bye, 通信过程便自动结束。实验源程序:服务器程序:#pragma comment (lib, Ws2_32.lib) /Winsock 2 函数库/-#include #include #include
2、 /Winsock 2 函数头文件/-bool InitSocket(); int main(int, char*)struct sockaddr addr;int len;bool over;char msg255;SOCKET sock, sersock;if( !InitSocket() ) return 0; /加载初始化 Winsock 2 动态链接库 Ws2_32.dllsock = socket( AF_INET,SOCK_STREAM,0 ); /创建监听的流套接口 if( sock=INVALID_SOCKET ) /不能创建,返回printf(不能创建Socket!n);g
3、etch();WSACleanup( ); /卸载Winsock 2动态链接库Ws2_32.dllreturn 0;/设置本服务器IP地址和端口号(sockaddr_in*)&addr)-sin_family = AF_INET; /AF_INET:使用Internet 协议(sockaddr_in*)&addr)-sin_port = htons(3000); /服务器端口号3000(sockaddr_in*)&addr)-sin_addr.s_addr = inet_addr(127.1.1.1); /主机地址/把套接口与地址绑定bind(sock,&addr,sizeof(addr);/
4、服务进程准备接收套接口上的连接请求listen(sock,1); /监听方式,准备接收连接请求:1-允许等待队列中的连接请求1个/接受网络连接,生成新的套接口sersock标识这一连接printf(等待客户连接!n);len = sizeof(addr);sersock = accept( sock,&addr,&len );/从等待队列中检取连接请求,如队列空则进程阻塞等待;/如不空,则接受客户连接,使用返回连接套接口sersock与该客户连接。/原套接口sock可继续监听其它客户请求。if(sersock=INVALID_SOCKET) /若套接口sersock 出错DWORD err =
5、 WSAGetLastError();char txt100;sprintf(txt,error when accept!-errno:%d,err);printf(txt);getch();closesocket(sock); /关闭监听套接口sockWSACleanup( ); /卸载Winsock 2动态链接库Ws2_32.dllreturn 0;printf(有客户连接!n输入bye通信结束n);over = false; /状态设置为未结束/与客户交互会话,直至任一方打入bye后退出循环doprintf(n等待对方用户输入信息.);len = recv ( sersock,msg,2
6、00,0 ); /接收对方信息printf(n对方输入:%s,msg); /显示对方信息if( strcmp(msg,bye)=0 ) /若对方信息为bye就结束通信break;printf(n本方回答:);gets(msg); /键入本方信息if( strcmp(msg,bye)=0 ) over = true; /若本方发出bye就结束通信send ( sersock,msg,strlen(msg)+1,0 ); /将本方键入信息发给对方 while( !over );closesocket(sersock); /关闭连接套接口closesocket(sock); /关闭监听套接口prin
7、tf(nn会话结束,按任一键返回n);getch();WSACleanup( ); /卸载 Winsock 2 动态链接库Ws2_32.dllreturn 0;/-/下述函数加载初始化Winsock 2 动态链接库 Ws2_32.dllbool InitSocket() WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested = MAKEWORD( 2, 0 ); /Wiinsock2.0版err = WSAStartup( wVersionRequested, &wsaData ); /加载if ( err != 0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 实践 课程设计 报告

限制150内