- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE 7
实 验 报 告
实验名称
Windows Socket 编程
课程名称
计算机网络
实验目的
1.掌握网络应用程序的开发方法;
2.掌握Client/ Server 结构软件的设计与开发方法
3.掌握Socket 机制的工作原理
实验环境
Windows 操作系统,VS 2010 开发环境
实验内容与结果
运行simplex-talk 例程,理解代码并观察现象
(1)结果如下:
Client 端
Server 端
server.exe
[simplex-talk server] server is ready in listening ...
client.exe localhost
[simplex-talk server] received a connection from 127.0.0.1 :
[simplex-talk client] connection to localhost is
ready
[simplex-talk client] please input your message
(empty input to halt):
Hello!
[simplex-talk client] send 7 chars to server
[simplex-talk server] received 7 chars
Hello!
BYE
[simplex-talk client] send 4 chars to server
[simplex-talk server] received 4 chars
BYE
[simplex-talk client] empty message is send to server
[simplex-talk client] connection is terminated
[simplex-talk server] empty message is received
[simplex-talk server] connection from 127.0.0.1 is
terminated
(2)代码理解,主要由以下几个模块构成:
.Winsock 的启动和终止 WSAStartup()和WSACleanup();
.创建套接字 socket();
.绑定本地地址bind();
.侦听连接listen();
.建立套接字连接accept()和connect();
.面向连接的数据传输send()和recv();
.关闭套接字closesocket()。
2. 修改simplex-talk 程序,编制duplex-talk 程序,支持client 和server 的双向通信。
主要编程设计思路是这样的:对比simplex-talk 程序,duplex-talk 程序要实现server 也能向client传送数据,并且client也能接收数据。由于socket程序已经建立的比较完善了,所以只需在server和client模块中分别增加发送键盘输入内容和接收传回内容即可。为了实现双方信息交互而不出现错乱,我在两个模块中加了一个判断变量canSendMsg,通过对这一变量值的判定来实现此时刻是否能发送信息,从而达到双方依次发送和接收信息的目的。
例:erdclient的收发部分主要代码
/* main loop: send and receive lines of text */
while (1) {
if(canSendMsg){
fgets(bufin, sizeof(bufin), stdin);
if ( strlen(bufin) == 1 ) {
bufin[0] = \0;
send(s, bufin, 1, 0);
printf([duplex-talk client] empty message is send to server\n);
break;
} else {
bufin[MAX_BUFSIZE-1] = \0;
len = strlen(bufin) + 1;
send(s, bufin, len, 0);
printf([duplex-talk client] send %d chars to server\n, strlen(bufin));
canSendMsg=0;
}
}
else{
len = recv(s, bufout, sizeof(bufout), 0);
if ( strlen(bufout) == 0 ) {
bufin[0] = \0;
send(s, bufin, 1
您可能关注的文档
- 实验三:端口镜像与生成树.docx
- 实验三:端口镜像与生成树.pptx
- 实验二:交换机配置与观察.docx
- 计算机网络_系统方法5eMK-PPT Chapter 9.ppt
- 计算机网络_系统方法5eMK-PPT Chapter 4.ppt
- 计算机网络试卷_2011A含答案.doc
- 计算机网络试卷_2011B含答案.doc
- 计算机网络试卷_2013A含答案.doc
- 计算机网络试卷_2013B含答案.doc
- 计算机网络习题解答2015.pdf
- 七章货物的保险.pptx
- 三章国际间接投资.pptx
- 人性假设理论.pptx
- 外研高一英语必修三ModuleIntroduction汇总市公开课获奖课件省名师示范课获奖课件.pptx
- 月相成因优质获奖课件.pptx
- 小学二年级语文课件《狐假虎威》省名师优质课赛课获奖课件市赛课一等奖课件.pptx
- 养羊业概况专题知识讲座.pptx
- 微生物的实验室培养市公开课获奖课件省名师示范课获奖课件.pptx
- 人教版六年级下册式与方程整理与复习市公开课获奖课件省名师示范课获奖课件.pptx
- 必威体育精装版高中精品语文教学:第二单元-第7课-诗三首:涉江采芙蓉、-短歌行、归园田居市公开课获奖课件省名师.pptx
文档评论(0)