计算机网络原理实验三winsock套接字编程实验报告云大软件学院.doc

计算机网络原理实验三winsock套接字编程实验报告云大软件学院.doc

ID:55156829

大小:82.50 KB

页数:8页

时间:2020-04-29

计算机网络原理实验三winsock套接字编程实验报告云大软件学院.doc_第1页
计算机网络原理实验三winsock套接字编程实验报告云大软件学院.doc_第2页
计算机网络原理实验三winsock套接字编程实验报告云大软件学院.doc_第3页
计算机网络原理实验三winsock套接字编程实验报告云大软件学院.doc_第4页
计算机网络原理实验三winsock套接字编程实验报告云大软件学院.doc_第5页
资源描述:

《计算机网络原理实验三winsock套接字编程实验报告云大软件学院.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验三、WINSOCK套接字编程实验报告序号:10姓名:学号:成绩指导老师:1.实验目的:用C或JAVA语言编写客户端、服务器程序,实现基于TCP或UDP的网络通信数据传输服务,熟悉基于TCP或UDP的Socket编程原理。2.实验环境:建立在TCP/IP网络体系结构之上计算机网络实验环境。各计算机除了安装TCP/IP软件外,还安装了TCP/IP开发系统。计算机具备Windows环境中套接字socket的编程接口功能,可为用户提供全网范围的进程通信功能。3.实验指导:参见套接字编程实验指导4.实验步骤(1)运行指导书中给出的参考程序,分析实验

2、结果,并回答问题(1)-(3)(2)根据给定参考程序修改代码,完善修改服务器和客户端的功能。并回答问题(4)-(5)5.实验结果分析(1)为什么在服务器和客户端要包含winsock2.h文件?答:这是系统自定义的“宏”,其中还包含了许多自定义的类型,如果不包含该文件,程序中会有许多类型无法识别。(2)为什么在服务器和客户端程序中要加入#pragmacomment(lib,"ws2_32.lib")语句,如果不加会出现什么问题?答:这句话的意思是链接“ws2_32.lib”这个库,如果不加就链接不到这个库。(3)为什么在服务器和客户端程序中要使

3、用WSAStartup函数,如果不用程序会有什么问题?答:为了在应用程序当中调用任何一个WinsockAPI函数,首先第一件事情就是必须通过WSAStartup函数完成对Winsock服务的初始化,因此需要使用WSAStartup函数。如果不用,程序将无法调用Socket库中的其他函数。(4)修改后的程序完成实现了什么功能,附上修改后的源代码。(修改或填加的代码用波浪线标注,并填加注释),并附上实验截图#include"stdafx.h"#include#include#include#

4、include#include#include#include#include#pragmacomment(lib,"ws2_32.lib")#defineMYPORT3490/*定义用户连接端口*/#defineBACKLOG10/*多少等待连接控制*/#defineSERVER_IP_ADDR"113.55.16.10"/*服务器的IP地址*/int_tmain(intargc,_TCHAR*argv[]){SOCKETsock,

5、msgsock;intlength=0;structsockaddr_inserver;structsockaddrtcpaddr;charbuf[1024]="";intrval=0,len=0,err=0;WORDwVersionRequested;WSADATAwsaData;/*指定socket版本,否则创建socket失败,即使创建socket返回值不为-1,但是bind时会失败*/wVersionRequested=MAKEWORD(2,2);err=WSAStartup(wVersionRequested,&wsaData);i

6、f(err!=0)return-1;/*建立套接字*/sock=socket(AF_INET,SOCK_STREAM,0);if(sock<0){perror("openingstreamsocket");exit(1);}/*使用任意端口命名套接字*/server.sin_family=AF_INET;server.sin_port=htons(MYPORT);server.sin_addr.s_addr=inet_addr(SERVER_IP_ADDR);memset(server.sin_zero,0,sizeof(server.sin

7、_zero));//将服务器地址与socket绑定在一起rval=bind(sock,(structsockaddr*)&server,sizeof(server));if(rval<0){perror("bindingstreamsocket");exit(1);}//找出指定的端口号并打印出来length=sizeof(server);if(getsockname(sock,(structsockaddr*)&server,&length)<0){perror("gettingsocketname");exit(1);}printf("s

8、ocketport#%d",ntohs(server.sin_port));//开始接收连接,最大请求数为listen(sock,5);len=sizeof(s

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

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

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