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

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机网络实践设计报告 学院: 计算机 班级: 成教2012业余 教师: 李领治 学号: 姓名: 成绩: 实验目的: 掌握Winsock2.0套接字编程技术的基本方法。 实验要求: 运用TCP/IP Winsock2.0套接字编程技术,使用VC编写一个面向连接通信的服务端程序与客户端程序,服务器先与端口3000绑定,然后等待客户连接,连接成功后就可与客户端互相收、发信息。交互中,通信任一方只要发送 bye, 通信过程便自动结束。 实验源程序: 服务器程序: #pragma comment (lib, Ws2_32.lib) //Winsock 2 函数库 //------------------------------------------------------- #include conio.h #include stdio.h #include winsock2.h //Winsock 2 函数头文件 //------------------------------------------------------- bool InitSocket(); int main(int, char**) { struct sockaddr addr; int len; bool over; char msg[255]; SOCKET sock, sersock; if( !InitSocket() ) return 0; //加载初始化 Winsock 2 动态链接库 Ws2_32.dll sock = socket( AF_INET,SOCK_STREAM,0 ); //创建监听的流套接口 if( sock==INVALID_SOCKET ){ //不能创建,返回 printf(不能创建Socket!\n); getch(); WSACleanup( ); //卸载Winsock 2动态链接库Ws2_32.dll return 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)); //服务进程准备接收套接口上的连接请求 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 = WSAGetLastError(); char txt[100]; sprintf(txt,error when accept!---errno:%d,err); printf(txt); getch(); closesocket(sock); //关闭监听套接口sock WSACleanup( ); //卸载Winsock 2动态链接库Ws2_32.dll return 0; } printf(有客户连接!\n输入bye通信结束\n); over = false; //状态设置为未结束 //与客户交互会话,直至任一方打入bye后退出循环 do{ printf(\n等待对方用户输入信息......); len = recv ( sersock,msg,200,0 );

文档评论(0)

imby0eybk9 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档