其实这个稿子以前发过,只是小弟太笨,还没搞定(还有分数不够了,请帮帮忙)要做一个监控软件,客户端软件安装在被监控设备上的计算机里(有N台),即时记录了设备的各种数据,所有数据以字符串形式发送到监控软件上来(我定义为服务器软件)1.假如服务器端已经连接到客户端了,客户端程序向服务端程序通过一个端口同时发送N种不同的数,服务端软件也要同时接受(即时更新),这该怎么做?看了之前的有高手说定义数组解决。2.服务器端同时要连接N个客户端,又如何保证通信?看了之前的有高手说也是定义数组解决(怎么有是数组~~)。3.网上有说设置两个winsock,一个监听,一个通信,用来防止通信中断后可以自动再监听。上述三种情况,能不能给小弟个实例参考一下好吗,谢谢各位大哥帮小弟忙吧,小弟做不出来会死的很惨~~谢谢大家!跪谢大家!跪拜大家!
上面设计的基本服务器只能接受一个连接请求。通过创建控件数组,使用一个控件也可以同时接受多个连接请求。利用这种方法,不需要关闭连接,而只需创建新的控件实例(通过设置其索引属性),然后在新的实例上调用 Accept 方法。下面的代码假定名为 sckServer 的窗体上有一个 Winsock 控件,它的 Index 属性被设置为 0;因此控件是控件数组的一部分。在声明部分,声明了一个模块级的变量 intMax。在窗体的 Load 事件中,intMax 被设置为 0,数组中第一个控件的 LocalPort 属性被设置为 1001。然后调用控件的 Listen 方法,使之成为“监听”控件。在连接请求到达时,代码将检测 Index 是否为 0(“监听”控件的值)。如果为 0,监听控件将增加 intMax 的值,并使用该号码来创建新的控件实例。然后,使用新的控件实例接受连接请求。Private intMax As LongPrivate Sub Form_Load()
intMax = 0
sckServer(0).LocalPort = 1001
sckServer(0).Listen
End SubPrivate Sub sckServer_ConnectionRequest _
(Index As Integer, ByVal requestID As Long)
If Index = 0 Then
intMax = intMax + 1
Load sckServer(intMax)
sckServer(intMax).LocalPort = 0
sckServer(intMax).Accept requestID
Load txtData(intMax)
End If
End Sub---------------------摘自MSDN
<document>
<mymsg>
客户端
</mymsg>
<yourmsg>
服务端
</yourmsg>
</document>服务端分析:引用Microsoft XML
写代码