- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
通信网络接口编程
实验报告
学院:计算机科学与通信工程学院
班级:
姓名:
学号:
2014.05.08
实验一、简单的客户机/服务器程序的实现
说明
1、建立项目时选择创建windows控制台程序,同时选择包含MFC类库。
所谓控制台程序字符图形界面
2、头文件说明 #include.... 表示引用标准库的头文件
(#include... 表示引用非标准库的头文件)
二、实验要求
1、读懂参考程序,说明客户机/服务器的地址定位、while(true)的作用等。
①客户机/服务器的地址定位的作用:发起通信连接的称为客户端,而等待呼叫请求的是服务器;
②While(ture)的作用:连续监听是否有客户端连接,如果有客户机接入就可以向它发送信息。
调试参考程序,打印运行结果
客户端:
3、(合理)调整客户机/服务器的端口,检查可行性
4、改服务器的输送字符为控制台输入方法(用gets函数)
运行结果:
服务端:
客户端:
将客户机/服务器分开运行(客户机用本机地址运行,服务器安装到另一台机器上)多客户同时访问服务器,说明运行结果
答:能同时进行访问。
6、说明并分析实验过程中遇到的问题、原因及解决方法
答:遇到的问题:
修改了buf[]的容量后还是出现“烫烫烫……”。
原因:没改IP地址。
解决方法:将IP地址改成匹配的地址。
7、按以上要求完成实验报告
8、思考实验中输入、输出缓冲区的匹配问题与TCP字节流传输方式有没有矛盾
答:没有矛盾,因为输入、输出缓冲区的匹配问题导致了最终客户端接收的信息不完整,而TCP字节流传输方式是一种可靠的传输方式,也就是说保证了字节流在传输过程中不会存在比特信息位的丢失问题,所以两者并不矛盾。
参考程序
客户端:
#pragma ? comment(lib, ws2_32.lib) ? #includewinsock2.h ? ? #includestdio.h ? ? void ? main() ? ? { ? ? WSADATA ? wsaData; ? ? WSAStartup(MAKEWORD(2,2),wsaData); ? ? SOCKET ? connSock=socket(AF_INET,SOCK_STREAM,0); ? ? SOCKADDR_IN ? servAddr; ? char ? buf[50]; ?
? servAddr.sin_family=AF_INET; ?
servAddr.sin_port=htons(9878); ? ? servAddr.sin_addr.s_addr=inet_addr(202.195.167.96); ? ? ? connect(connSock,(SOCKADDR*)servAddr,sizeof(SOCKADDR_IN)); ? ? recv(connSock,buf,50,0); ? ? printf(%s,buf); ?
getchar();? } ?
服务器端:
#pragma ? comment(lib,ws2_32.lib) ? ? #includewinsock2.h ? ? void ? main() ? ? { ? ? WSADATA ? wsaData; ? ? WSAStartup(MAKEWORD(2,2),wsaData); ? ? SOCKET ? servSock,cliSock; ? ? SOCKADDR_IN ? servAddr; ?
? servAddr.sin_family=AF_INET; ? ? servAddr.sin_port=htons(9878); ? ? servAddr.sin_addr.s_addr=htonl(INADDR_ANY); ?
? servSock=socket(AF_INET,SOCK_STREAM,0); ? ? bind(servSock,(SOCKADDR*)servAddr,sizeof(SOCKADDR_IN)); ? ? listen(servSock,5); ? ? while(true) ? ? { ? ? cliSock=accept(servSock,NULL,NULL); ? ? send(cliSock,欧燕秋,加油↖(^ω^)↗ ,50,0);
? } ? ? }
实验二、参数backlog测试
文档评论(0)