VB使用 Winscok 如何实现服务器与3个客户端连接

假设服务器与3个客户端都在同一IP段。

本地计算机(作服务器)只有1个网口,如何利用一台交换机实现服务器与3个设备(客户端)实现以太网通信(Modbus/TCP)?

希望有VB源码!!先谢过!!

服务器端在指定端口侦听,这个实例对连接请求使用新的套接字响应。而客户端则无需特别的代码。
具体做法可参考下面的内容:
在服务端放一个winsock控件name属性设置为sock,设置它的index属性为0.

在表单的Initialize事件中开始侦听:
sock(0).LocalPort = 2012
sock(0).Listen

在sock的ConnectionRequest事件编写代码:
Dim iSock As Integer
'寻找是否有空闲的套接字
For iSock = 1 To sock.UBound
'找到第一个后即可结束循环
If sock(iSock).State = 0 Then Exit For
Next
'如果没有空闲的套接字,建立一个新的(新建的就是空闲的)
If iSock > sock.UBound Then Load sock(iSock)
'响应连接请求
sock(iSock).Accept requestID

其它事件的代码按实际需要编写,与客户端没有什么区别。
上面这部分代码,就是让sock(0)在指定的端口进行侦听,然后,如果有客户端在这个端口请求连接,那么,sock(0)就会产生一个ConnectionRequest事件,这时,并不去用sock(0)去响应连接,而是建立一个新的sock,如sock(1),sock(2)...并用它们的Accept去与客户端的socket交互,而sock(0)继续在原有的端口上进行着侦听。
这样,就可以在同一个端口上接入多个客户端,这就是服务器侦听模式的简单应用例子了。
温馨提示:答案为网友推荐,仅供参考
相似回答