VB.NET SOCKET通讯对应多客户端

icerain911 2008-11-24 11:25:46
怎么实现让服务器端的SOCKET通讯能够同时支持多客户端连接和响应
...全文
148 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
meijun_80 2009-09-15
  • 打赏
  • 举报
回复
你的问题解决了吗?
  • 打赏
  • 举报
回复
.net也有很多客户端针对http通讯的手段,例如webClient、httpWebRequest等,如果你是基于http开发的,那么在服务端当然可以使用asp.net。但是,asp.net也不去管你客户端如何编写的。
  • 打赏
  • 举报
回复
发错论坛了。asp.net是针对http服务编程,不存在这个。
icerain911 2008-11-24
  • 打赏
  • 举报
回复
再顶
icerain911 2008-11-24
  • 打赏
  • 举报
回复
自己顶
icerain911 2008-11-24
  • 打赏
  • 举报
回复
没有人会么,自己顶
icerain911 2008-11-24
  • 打赏
  • 举报
回复
自己顶
icerain911 2008-11-24
  • 打赏
  • 举报
回复
接着顶
icerain911 2008-11-24
  • 打赏
  • 举报
回复
我是WINFORM的程序哦,用得是套接字来实现SOCKET通讯
' SOCKET绑定
listenerTcp.Bind(localEndPoint)
listenerTcp.Listen(100)

While True
allDone.Reset()
' 数据接受开始
listenerTcp.BeginAccept(New AsyncCallback(AddressOf AcceptCallback), listenerTcp)
' 数据出力完成前,其他的线程处于等待状态
allDone.WaitOne()
End While
实验三Socket通信实验报告 (1)实验目的和要求 1. 掌握VB、VC++、VS或JAVA等集成开发环境编写网络程序的方法; 2. 掌握客户/服务器(C/S)应用的工作方式; 3. 学习网络中进程之间通信的原理和实现方法; 4. 理解单播、组播和广播的原理并比较其不同之处; 5. 要求本机既是客户端又是服务器端; (2)实验内容 所编写的程序应具有如下功能: 1. 具有点对点通信功能,任意客户端之间能够发送消息; 2. 具有群组通信功能,客户端能够向组内成员同时发送消息,其他组成员不能收到; 3. 具有广播功能,客户端能够向所有其他成员广播消息; (3)编程语言和环境 1. 编程语言C/C++/C#/Java等均可; 2. 编程环境Windows(MS Visual系列,VC/VB/VS.Net;)和Linux(编辑器vi+编译器GCC)均可; (4)实验主要功能实现说明 以下为针对三个实验内容实现方法的简要说明,示例所用语言为C。 基于C的面向连接的socket编程模型 1. 点对点通信功能 实现网络点对点通讯程序的关键步骤就是实现信息在网络中的发送和接收。数据接收 使用的是Socket,数据发送使用的是NetworkStream。 1.1利用Socket来接收信息 TcpListener tlListen1 = new TcpListener ( 8889 ) ; //侦听端口号 tlListen1.Start ( ) ; Socket skSocket = tlListen1.AcceptSocket ( ) ; //接受远程计算机的连接请求,并获得用以接收数据的Socket实例 EndPoint tempRemoteEP = skSocket.RemoteEndPoint ; //获得远程计算机对应的网络远程终结点 while ( true ) { Byte [] byStream = new Byte[80] ; //定义从远程计算机接收到数据存放的数据缓冲区 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 ) ; //对IP地址为"10.138.198.213"的计算机的8888端口提出连接申请 NetworkStream tcpStream = tcpc.GetStream ( ) ; //如果连接申请建立,则获得用以传送数据的数据流 string sMsg = "您好,见到您很高兴" ; StreamWriter reqStreamW = new StreamWriter ( tcpStream ) ; //以特定的编码往向数据流中写入数据 ,默认为UTF8编码 reqStreamW.Write ( sMsg ) ; //将字符串写入数据流中 reqStreamW.Flush ( ) ; //清理当前编写器的所有缓冲区,并使所有缓冲数据写入基础流 2. 群组通信功能 组播编程需要UDP,有两个类支持组播网络编程Socket和UdpClient.一台计算机要加 入某一个组,然后接收发往这个组的信息。Socket类要调用SetSocketOption函数加入和 离开某一个组。UdpClient类有直接的加入和离开某个组的成员函数可以调用。而向某个 组发信息,则没有什么特殊的,只需把发送数据的目的地址设为组播地址就可以了。 发送端: Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); IPEndPoint 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, SocketTyp

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧