tcp实验报告.doc_第1页
tcp实验报告.doc_第2页
tcp实验报告.doc_第3页
tcp实验报告.doc_第4页
tcp实验报告.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

华 北 电 力 大 学 实 验 报 告华北电力大学实 验 报 告| 实验名称 基于Winsock的多客户并发服务程序的实现 课程名称 TCP/IP实验原理 | 专业班级: 学生姓名: 学 号: 成 绩:指导教师: 实验日期: 一、实验目的: 熟悉socket的操作,掌握异步socket的使用方法,理解多线程的概念,初步掌握线程的编程方法。二、实验要求:1)基于Winsock分别编写客户端和服务器端程序,服务器端进行监听,接到客户的请求后服务器与客户建立关联,采用流套接字(TCP)或数据报套接字(UDP)均可。服务器端接受客户传送来的数据并将其发回给客户端。2)服务器端实现接受多个客户的服务请求并为它们服务,接受客户传送来的数据并将数据分别发回给客户端,服务器端和客户端的数据通信采用的是异步方式。三、实验流程图:四、实验结果:五、实验心得通过本次实验,我了解了windows sockets的工作原理以及初步编写socket客户端与服务器的方法,同时还进一步了解了sockets的通信过程。实验的过程中遇到了一些困难,不过都被一一解决了,所以在实验的同时还进一步熟悉了C#语言的运用。六、实验代码服务器:using System; using System.Collections.Generic; using System.Text; using System.Net; using System.Net.Sockets; namespace ConsoleApplication2 /服务器端 class Program static void Main(string args) int port = 2000; string host = ; /创建终结点(EndPoint) IPAddress ip = IPAddress.Parse(host);/把ip地址字符串转换为IPAddress类型的实例 IPEndPoint ipe = new IPEndPoint(ip, port);/用指定的端口和ip初始化IPEndPoint类的新实例 /创建socket并开始监听 Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);/创建一个socket对像,如果用udp协议,则要用SocketType.Dgram类型的套接字 s.Bind(ipe);/绑定EndPoint对像(2000端口和ip地址) s.Listen(0);/开始监听 Console.WriteLine(等待客户端连接); /接受到client连接,为此连接建立新的socket,并接受信息 Socket temp = s.Accept();/为新建连接创建新的socket Console.WriteLine(建立连接); string recvStr = ; byte recvBytes = new byte1024; int bytes; bytes = temp.Receive(recvBytes, recvBytes.Length, 0);/从客户端接受信息 recvStr += Encoding.UTF8.GetString(recvBytes, 0, bytes); /给client端返回信息 Console.WriteLine(客户端传来的信息:0, recvStr);/把客户端传来的信息显示出来 string sendStr = 客户端传递信息成功; byte bs = Encoding.UTF8.GetBytes(sendStr); temp.Send(bs, bs.Length, 0);/返回信息给客户端 temp.Close(); s.Close(); Console.ReadLine(); 客户端:using System; using System.Collections.Generic; using System.Text; using System.Net; using System.Net.Sockets; namespace ConsoleApplication3 /客户端 class Program static void Main(string args) try int port = 2000; string host = ; /创建终结点EndPoint IPAddress ip = IPAddress.Parse(host); IPEndPoint ipe = new IPEndPoint(ip, port);/把ip和端口转化为IPEndpoint实例 /创建socket并连接到服务器 Socket c = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);/创建Socket Console.WriteLine(正在连接); c.Connect(ipe);/连接到服务器 /向服务器发送信息 string sendStr = 你好, 我是客户端的信息; byte bs = Encoding.UTF8.GetBytes(sendStr);/把字符串编码为字节 Console.WriteLine(发送信息); c.Send(bs, bs.Length, 0);/发送信息 /接受从服务器返回的信息 string recvStr = ; byte recvBytes = new byte1024; int bytes; bytes = c.Receive(recvBytes, recvBytes.Length, 0);/从服务器端接受返回信息 recvStr += Encoding.UTF8.GetString(recvBytes, 0, bytes); Console.WriteLine(你好,我是服务器,已经接受客户端传来的信息:0, recvStr);/显示服务器返回信息 /一定记着用完socket后要关闭 c.Close(); catch (ArgumentNullException e) Console.WriteLine(argumentNullException: 0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论