课程设计基于CS结构的套接字程序设计(TCP)课程设计.doc
文本预览下载声明
PAGE
PAGE 1
计算机网络课程设计
—— 基于C/S结构的套接字程序设计(TCP)
学院:信息技术工程学院
班级:计科班
姓名:
学号:
指导老师:
目录
1、引言1
课题目的及要求2
研究设想2
相关理论2
预期结果2
2、关键词2
3、正文3
理论基础3
设计方法及思路3
编程方法4
主要内容及其分析6
实验结果及对其讨论9
4、结论10
核心10
难点10
问题10
不足及对其改进10
5、致谢11
6、参考文献11
引言
基于C/S结构的套接字程序设计(TCP)
1、目的及要求
(1)目的和意义
通过编程了解C/S结构的网络通信模型;
掌握基于C/S结构的Windows Socket TCP的程序设计方法。
(2)基本要求
按照C/S模型编写两个程序。一个为客户端程序,另一是服务器端程序;
对于C/S两端都应输出必要的日志、出错或诊断信息。
(3)小组人数:2
2、研究设想
能够实现当客户端向服务器端发送请求时,服务器端能够向客户端传送数据。
3、相关理论
TCP是一种面向链接的,可靠的传输协议。TCP协议在网络层IP协议的基础上,向应用层用户进程提供可靠地全双工的数据流传输。并且通过创建的流式套接字实现服务器端与客户端的数据传送。
4、预期结果
实现服务器端与客户端的数据传送。
关键词
流式套接字;TCP/IP;服务器/客户端;
正文
1、理论基础
应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字(Socket)的接口,区分不同应用程序进程间的网络通信和连接。网络化的应用程序在开始任何 HYPERLINK /Computer/Index.html 通讯之前都必需要创建套接字。
Socket可以看成在两个程序进行通讯连接中的一个端点,一个程序将一段信息写入Socket中,该Socket将这段信息发送给另外一个Socket中,使这段信息能传送到其他程序中。
套接字,是支持TCP/IP的网络通信的基本操作单元,可以看做是不同主机之间的进程进行双向通信的端点,简单的说就是通信的两方的一种约定,用套接字中的相关函数来完成通信过程。
流套接字用于提供面向连接、可靠的数据传输服务。该服务将保证数据能够实现无差错、无重复发送,并按顺序接收。流套接字之所以能够实现可靠的数据服务,原因在于其使用了传输控制协议,即TCP(The Transmission Control Protocol)协议。
2、设计方法及思路
客户机与服务器建立连接,连接是通过申请的套接字实现的客户打开一个套接字并把它约束在一个端口上如果成功就相当于建立一个虚拟文件以后就可以在虚拟文件上写数据并通过网络向外传送,完成连接后就可以通信了。客户机向服务器发送请求,打开一个连接后,客户机把请求消息送到服务器的停留端口上,完成提出请操作。服务器在处理完客户的请求之后,要向客户机发送响应消息。客户和服务器双方都可以通过关闭套接字来结束TCP/IP对话。
当使用TCP/IP协议一发客户服务器服务程序时,服务器需要等待任意数量客户端的连接,以便以他们提供服务。客户端连接服务器时,必须先知道服务器的名称。在TCP/IP中,就是服务器的IP地址和端口号。bind()函数实现将服务器绑定到一个已知的名字上的功能。接下来要将服务器套接字设置为监听状态,这是通过listen()函数完成的。在监听状态下,如果客户端向服务器发起连接请求,服务器通过调用accept()函数来接受该接连请求。服务器与客户端完成连接后,就可以进行数据通信了。
对客户端来说,首先调用connect()函数向服务器发出连接请求。如果服务器接受了该请求,接下来就可以与服务器通信了。
开发套接字应用程序时,首先应进行Windows Sockets的初始化,加载Windows Sockets的实现,然后创建套接字,对TCP套接字来说,需要在s
显示全部