已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026 年国网西藏电力公司央企紧缺人才招聘试卷 招录 35 人
- 2026载货车智能诊断与远程维护技术应用报告
- 2026工业互联网平台标准化建设路径分析报告
- 多环节供应链优化实施方案
- 2026年CRRT 停机指征评估考试试卷及答案
- 2026年河北省建筑安全员考试题库附答案
- 2026年企业网络安全产业发展趋势预测与应对模拟试题
- 2026年中学教师资格证《教育知识与能力》考试真题及答案
- 2026年中小学体育教师晋升高级职称试题含答案
- 2026年血管介入术后护理方案
- 人教PEP四年级英语上册阅读理解专项30篇(含答案)
- 2026临汾市侯马市招聘乡(街道)消防协管员考试备考试题及答案详解
- 江西省人才发展集团有限公司2026年春季集中招聘专题【11人】建设笔试备考题库及答案解析
- 2026年高考上海卷英语含解析及答案(新课标卷)
- 广东省2026年普通高中学业水平合格性考试数学试题(含答案)
- 钢管脚手架用量计算表 形式2
- 资产评估公司人事管理制度
- 轴类零件加工工艺过程课件
- 食堂蔬菜等食材的采购协议
- 第六讲行为建筑学
- 《点到直线的距离公式》教案(公开课)
评论
0/150
提交评论