- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机科学与技术学院
网络课程设计
实验报告
设计题目:基于Winsock的网络
传输编程
指导老师:杜欢
学生班级:0440703
上机时间:第17周
学生姓名:陈敏 苏密
学生学号 2009年12月31日制
网络课程设计实习
实验时间:2009-12-28---2009-12-31 指导老师:杜欢
学生姓名:陈敏、苏密 班级:0440703 学号07130303
一、设计题目:
基于Winsock的网络传输编程,实现C/S模式的网络聊天功能。
二、系统介绍:
本系统是基于Java的编程,在网络编程中,使用套接字的应用程序被分为客户和服务器两类,客户端/服务端(client/server)应用系统采用“请求/响应”的应答模式,当用户需要访问服务哭时就由客户端发出“请求”,服务器就接收“请求”并“响应”,然后执行相应的服务,把执行的结果送回给客户端,由它进一步处理后再提交给用户,我们的这个设计就是属于客户端/服务端模式,它要实现的就是服务端和客户端的聊天功能,当客户端有聊天需求时就向客户端发也一个连接请求,服务端接收到请求和并同意连接,这样就实现了端到端的聊天功能。
在作这个系统介绍的时候有必要了解一下Socket接口,Socket可以看成两个程序进行通信的网络连接中的一个端点,一个程序将一段信息写入Socket中,该Socket将这段信息发送给另外一个Socket中,socket编程主要是指基于TCP/IP协议的网络编程。而在JAVA中就提供两种Socket通信方式:流套接字(stream socket)和数据报套接字(datagram socket)。它们分别对应着面向连接的通信方式和无连接的通信方式。
面向连接的操作使用TCP协议。这个模式下的Socket必须在发送数据之前与目的地的Socket取得一个连接。一旦连接建立了,就可以进行相关操作。所有发送的信息都会在另一端以同样的顺序被接收。无连接的操作使用UDP协议,这个模式下的Socket不需要连接一个目的的Socket,它只是简单地投也数据报。面向连接的操作比无连接的操作效率低些,但是数据的可靠性更高。
在两个程序连接之前。彼此之间必须达成一致,即由客户端负责初始化连接,而服务端随时等候请求,当两端所指定端口号一致时连接才可能被成功建立。在设计的时候,需要用到JAVA中的ServerSocket类,创建一个ServerSocket类时,只需为其赋予一个端口编号,不必把一个IP地址分配它,因为它已经在自己代表的那台机器上了,如果端口编号的值为0,则在任意可用的端口上创建服务器Socket。
创建一个服务器程序主要包括以下基本步骤:
建立一个服务器socket并开始监听;
使用accept()方法取得新的连接;
获取网络输入流各输出流;
在已有的协议上产生会话,与客户端进行通信;
与客户端通信完毕后,关闭输入输出流和socket;
回到第二步或者第七步;
关闭服务器socket。
创建一个客户端程序主要包括以下基本步骤:
建立客户端socket与服务器进行连接;
得到socket的网络输入输出流;
利用流在已有的协议上产生会话,与服务器端进行通信;
与服务器端通信完毕后关毕输入输出流和socket。
三、设计流程图:
本程序相关知识结构图:
TCP层次结构图:
TCP/IP协议核心与应用程序关系图:
网络层次联系图:
四、系统实现与测试
1、开发平台和工具选择 这个聊天程序是使用Java语言开发的
2、系统测试
服务器启动,开始监听客户端
客户端启动,准备连接服务器
运行成功,跳出聊天界面
成功实现通信
五、设计体会及收获
虽说是学习了一个学期的计算机网络,但是对于编写一个真正的实际东西还是有很大的困难。平常学的都是些理论东西,实际操作起来还是有很大的困难。理论真正联系到实际的时候才知道困难有多大。很多东西知道理论,但是不知道怎么用编程来实现。只有查阅大量资料才有点眉目。通过此次网络课程设计,加深了对网络编程及网络协议的了解,网络编程就是要使一台计算机直接和间接地通过网络协议与其他计算机进得通信,但是通信有两个问题,一是准确地定位网络上的主机,其二就是找到主机后怎么进得可靠高效的进行数据传输。这次网络编程利用了JAVA里面的包来进行java Socket网络编程,不仅让我们掌握了网络编程中的知识及网络编程的相关协议,也让我们更深入的学习和了解了曾经学过的JAVA这种语言。这次网络编程涉及的知识包括TCP/IP协议,java Socket编程,还有相关线程的理解。因为我们也是才开
文档评论(0)