C#基于TCP的客户端服务器通信说课.doc

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE  PAGE 21 《高级网络程序设计》 课程设计报告 题 目 基于TCP的局域网即时消息系统 的客户端和服务器端的设计与实现 学 号 姓 名 计算机网络工程教研室 2016年01月11 日 PAGE \* MERGEFORMAT 目 录  TOC \o 1-2 \h \z \u  一、课程设计内容………………………………………..2 二、设计目的……………………………………………..2 三、设计步骤……………………………………………..2 四、具体要求………………………………………… 3 五、实验代码……………………………………………. 3 六、实验结果……………………………………..…… 20 七、参考文献……………………………………..…… 22 八、实验心得……………………………………..…… 22 天津科技大学计算机学院 《高级网络程序设计》课程设计 PAGE \* MERGEFORMAT0 一、课程设计内容 1. Winsock的启动与终止。 2. Winsock的创建及绑定和关闭。 3. 建立通信连接listen及accept和connect。 4. 数据的传输。 5. 简单的客户机/服务器之间的通信。 二、设计目的 1. 熟悉Windows Socket的常用函数的形式和使用方法,理解数据通信的过程。 2. 掌握如何利用C#进行TCP协议开发,完成基于TCP的局域网即时消息系统的客户端和服务器端的设计与实现。 三、设计步骤 在TCP/IP网络中两个进程间的相互作用的主机模式是客户机/服务器模式(Client/Server model)。该模式的建立基于以下两点:(1)非对等作用;(2)通信完全是异步的。客户机/服务器模式在操作过程中采取的是主动请示方式: 1、首先服务器方要先启动,并根据请示提供相应服务,其过程如下: (1)打开一通信通道并告知本地主机,它愿意在某一个公认地址上接收客户请求。 (2)等待客户请求到达该端口。 (3)接收到重复服务请求,处理该请求并发送应答信号。 (4)返回第二步,等待另一客户请求 (5)关闭服务器。 2、客户方: (1)打开一通信通道,并连接到服务器所在主机的特定端口。 (2)向服务器发送服务请求报文,等待并接收应答;继续提出请求…… (3)请求结束后关闭通信通道并终止。 3、TCP连接的套接字的系统调用时序图如图2.1所示。 4、TCP连接的应用程序流程图如图2.2所示。 图2.1 TCP连接的套接字的系统调用时序图 图2.2 TCP连接的应用程序流程图 四、具体要求 需要有基本的双人、多人文字聊天功能,上下线通知,在线用户列表,点对点文件传输,所有的文字或文件传输需支持CRC-32校验,具有出错重传机制; 五、实验代码 (1)客户机: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace SocketClient { public partial class Form1 : Form { public Form1() { InitializeComponent(); } Socket _socketSend; private void btnStart_Click(object sender, EventArgs e) { //创建负责通信的Socket: if (_socketSend == null || _socketSend.Connected == false) { _socketSend = new Socket(AddressFamily.InterNetwork, SocketType.Strea

文档评论(0)

舞林宝贝 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档