实验三Socket通信实验报告.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《实验三Socket通信实验报告.doc》由会员分享,可在线阅读,更多相关《实验三Socket通信实验报告.doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 实验三Socket通信实验报告(1)实验目的和要求1. 掌握VB、VC+、VS或JAVA等集成开发环境编写网络程序的方法;2. 掌握客户/服务器(C/S)应用的工作方式;3. 学习网络中进程之间通信的原理和实现方法;4. 理解单播、组播和广播的原理并比较其不同之处;5. 要求本机既是客户端又是服务器端;(2)实验内容所编写的程序应具有如下功能:1. 具有点对点通信功能,任意客户端之间能够发送消息;2. 具有群组通信功能,客户端能够向组内成员同时发送消息,其他组成员不能收到;3. 具有广播功能,客户端能够向所有其他成员广播消息;(3)编程语言和环境1. 编程语言C/C+/C#/Java等均可;
2、2. 编程环境Windows(MS Visual系列,VC/VB/VS.Net;)和Linux(编辑器vi+编译器GCC)均可;(4)实验主要功能实现说明以下为针对三个实验内容实现方法的简要说明,示例所用语言为C。服务器端客户端socketbindlistensocketconnectacceptrecvsendrecvclosesendclose阻塞自己等待客户连接建立连接请求数据应答数据基于C的面向连接的socket编程模型1. 点对点通信功能实现网络点对点通讯程序的关键步骤就是实现信息在网络中的发送和接收。数据接收使用的是Socket,数据发送使用的是NetworkStream。1.1利
3、用Socket来接收信息TcpListener tlListen1 = new TcpListener ( 8889 ) ; /侦听端口号 tlListen1.Start ( ) ; Socket skSocket = tlListen1.AcceptSocket ( ) ; /接受远程计算机的连接请求,并获得用以接收数据的Socket实例 EndPoint tempRemoteEP = skSocket.RemoteEndPoint ; /获得远程计算机对应的网络远程终结点 while ( true ) Byte byStream = new Byte80 ; /定义从远程计算机接收到数据存
4、放的数据缓冲区 int i = skSocket.ReceiveFrom ( byStream , ref tempRemoteEP ) ; /接收数据,并存放到定义的缓冲区中 string sMessage = System.Text.Encoding.UTF8.GetString ( byStream ) ; /以指定的编码,从缓冲区中解析出内容 MessageBox.Show ( sMessage ) ; /显示传送来的数据 1.2利用NetworkStream来传送信息TcpClient tcpc = new TcpClient ( 10.138.198.213 , 8888 ) ;
5、/对IP地址为“10.138.198.213”的计算机的8888端口提出连接申请 NetworkStream tcpStream = tcpc.GetStream ( ) ; /如果连接申请建立,则获得用以传送数据的数据流string sMsg = 您好,见到您很高兴 ; StreamWriter reqStreamW = new StreamWriter ( tcpStream ) ; /以特定的编码往向数据流中写入数据 ,默认为UTF8编码 reqStreamW.Write ( sMsg ) ; /将字符串写入数据流中 reqStreamW.Flush ( ) ; /清理当前编写器的所有缓
6、冲区,并使所有缓冲数据写入基础流2. 群组通信功能组播编程需要UDP,有两个类支持组播网络编程Socket和UdpClient.一台计算机要加入某一个组,然后接收发往这个组的信息。Socket类要调用SetSocketOption函数加入和离开某一个组。UdpClient类有直接的加入和离开某个组的成员函数可以调用。而向某个组发信息,则没有什么特殊的,只需把发送数据的目的地址设为组播地址就可以了。发送端: Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); IPEndPoi
7、nt iep = new IPEndPoint(IPAddress.Parse(224.0.0.1), 3000); EndPoint ep = (EndPoint)iep;byte b = Encoding.ASCII.GetBytes(just a test!); s.SendTo(b, ep); s.Close();接收端: Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); IPEndPoint iep = new IPEndPoint(IPAddress.Any,
8、 3000); EndPoint ep=(EndPoint)iep; s.Bind(iep); s.SetSocketOption(SocketOptionLevel.IP,SocketOptionName.AddMembership,new MulticastOption(IPAddress.Parse(224.0.0.1); byteb=new byte1024; s.ReceiveFrom(b,ref ep); string test; test = System.Text.Encoding.ASCII.GetString(b); Console.WriteLine(test); s.C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 Socket 通信 报告
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内