华科-计算机网络-实验报告1.docx
电子与信息工程系
实验报告
实验名称
WindowsSocket编程(Duplex-talk)
课程名称
计算机网络
姓名
张建佳
学号
U201013086
日期
2012-03-21
地点
南一楼东203
成绩
教师
徐晶
实验目的
1.掌握网络应用程序的开发方法;
2.掌握Client/Server结构软件的设计与开发方法
3.掌握Socket机制的工作原理
实验环境
操作系统:Windows7
开发环境:VisualStudio2010,VC6
实验内容与结果
2.修改simplex-talk程序,编制duplex-talk程序,支持client和server的双向通信
(1)程序整体功能
Client端程序连接Server端程序,Client能给Server发送信息,同时Server也能给Client发送信息,实现双向通信;
(2)程序组成及各模块/函数功能
Client端
传入
传入server端的主机号
将
将server端的主机号转换为IP地址
发起一个
发起一个socket连接请求
判断连接是否成功
判断连接是否成功
N报错,退出
N
报错,退出
Y
Y
发送信息
发送信息
判断信息是否为空
判断信息是否为空
Y
Y
N
N
N
N
判断信息是否为空
判断信息是否为空
接收信息
接收信息
Y
Y
关闭连接
关闭连接
退出程序
退出程序
Server
监听等到
监听等到Client的连接请求
建立与
建立与Client的连接
接收信息
接收信息
N判断信息是否为空发送信息
N
判断信息是否为空
发送信息
Y
Y
N
N
判断信息是否为空
判断信息是否为空
Y关闭连接
Y
关闭连接
退出程序
退出程序
(3)程序清单(见附件)
(4)程序的运行和测试结果
编译源文件,生成可执行文件并运行,其过程如下:
Client端
Socket端
server.exe
[simplex-talkserver]serverisreadyinlistening...
client.exelocalhost
[simplex-talkserver]receivedaconnectionfrom127.0.0.1:
[simplex-talkclient]connectiontolocalhostisready
[simplex-talkclient]pleaseinputyourmessage(emptyinputtohalt):
Hello,Server.
[simplex-talkclient]send14charstoserver
[simplex-talkserver]received14chars
Hello,Server.
Hello,Client.
[simplex-talkserver]send14charstoclient
[simplex-talkclient]received14chars
Hello,Client.
Bye.
[simplex-talkclient]send5charstoserver
[simplex-talkserver]received5chars
Bye.
[simplex-talkserver]emptymessageissendtoclient
[simplex-talkserver]connectionfrom127.0.0.1isterminated
[simplex-talkclient]emptymessageisreceived
[simplex-talkclient]connectionisterminated
运行结果截图
Client
Server
实验中的问题
暂无
附件
1.
程序源代码
(1)socket-client.c
[
[键入文档的引述或关注点的摘要。您可将文本框放置在文档中的任何位置。请使用“绘图工具”选项卡更改引言文本框的格式。]
/*
/*wliucomments:requiredforwindowssocketprogramming*/
#includewinsock.h
#pragmacomment(lib,wsock32.lib)
#includestdio.h
#includestring.h
#defineSERVER_PORT5432
#defineMAX_BUFSIZE256
intmain(intargc,char*argv[])
{
/*wliucomments:requ