- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
华中科技大学 电子与信息工程系实验报告
- PAGE 6 -
- PAGE 1 -
实 验 报 告
实验名称
Lab1拓展试验-多client
课程名称
计算机网络
实验目的
目的:
1.掌握网络应用程序的开发方法;
2.掌握Client/ Server 结构软件的设计与开发方法
3.掌握Socket 机制的工作原理
要求完成:
1. command‐line‐based, no GUI required
2. c or c++ socket programming
3. being tested by multiple computers
(已经完成基本实验,这是拓展试验的要求)
实验环境
运行在win7操作系统下,用Visual Studio2010编程,在自己的笔记本上用本机的IP()进行实验测试
实验内容与结果
软件编程类实验报告内容:
(1)程序整体功能
服务器端接受并转发来自客户端的消息给指定客户端;
客户端通过服务器向指定客户端发送消息,并接受其他客户端通过服务器转发的消息。
(2)程序组成及各模块/函数功能;
程序由两个项目组成:server和client。
server:由main函数和GraceClose函数组成
main函数是server的主线程,完成server对client的接受和转发流程。
GraceClose函数用于关闭socket连接并回收资源。
client:由main函数和GraceClose函数组成
main函数是client的主线程,完成client对server的接受和发送流程。
GraceClose函数用于关闭socket连接并回收资源。
(3)重要的数据结构,模块/函数算法;
主要采用的数据结构:
SOCKET套接字;
fd_set集合;
typedef listSOCKET SocketList;
typedef listSOCKET::iterator SocketListIterator;
重要模块:
Client:
连接模块:采用非阻塞方式连接服务器,循环connect;
发送模块:输入将要发送的客户端的序号以及内容,拼接后发送给服务器端;
接受模块:非阻塞方式接收。
Server:
连接模块:循环接受来自客户端的连接,并将新建的套接字加入
接受模块:将来自客户端的信息解析,分离出目的客户端的序号和正文数据;
发送模块:在SocketList中找到目的客户端的套接字,并将剩下的正文信息发送给该客户端;
(4)程序清单(手写或者打印后作为附件)
server.cpp
client.cpp
(见附件)
(5)程序的运行和测试结果(提供截图)
测试过程:
打开了一个sever端,三个client端(client0,client1,cient2);
Server:负责接收和转发;
Client 0:
发送目的client
输入
信息来源client
接收
2
hello,2!
无
无
1
where_are_you?
1
Are_you_client0?
Client 1:
发送目的client
输入
信息来源client
接收
0
Are_you_client0?
2
hi,Im_client2!
0
hahaha
0
where_are_you?
Client 2:
发送目的client
输入
信息来源client
接收
1
hi,Im_client2!
0
hello,2!
测试结果:
Server:
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
C:\Users\AdministratorE:\kejian\大三上课件\计算机网络\socket_1026 - 副本\Debug
\server.exe
Server began listening...
Server accepted a connection. The socket is 0
Server accepted a connection. The socket is 1
Server accepted a connection. The socket is 2
[client 0] send hello,2! to [client 2]
[client 2] send hi,Im_client2! to [client 1]
[client 1] send Are_you_client0? to [client 0]
[client 0] send where_are_you? to [client 1]
[client 1] send hahaha to [client 0]
Client
文档评论(0)