做一个C/S系统,需要要服务端同时向几个客户端发送消息,想用如下代码实现,可是,所有的客户端中,很多客户经常收不到消息,请大家帮看看指点指点。不胜感谢。
这是服务器代码:
'广播信息
ReDim ByteArray(Len(Gave(Index + 1)))'Gave()为自定义结构类型变量
CopyMemory ByteArray(0), Gave(Index + 1), Len(Gave(Index + 1))'将Gave()变量转换为Byte
For i = 0 To 3
If Gave(Index + 1).CHY(i).CEN <> 0 Then
tcpServer(Gave(Index + 1).CHY(i).CEN).SendData ByteArray()
End If
Next
这段代码在运行过程中,确实执行了,但几个在线的客户中,经常是只有一个客户端收到信息,其实收不到。(几个在线的客户向服务器发送信息却很正常)
还有更怪的事:如果上述代码在断点调试方式一行一行运行,所有的客户都能收到,如果不断点,大部分都收不到。
怪!
盼大家帮忙解答。盼大家帮忙解决:如果才能让所有的客户都能收到消息?
这是服务器代码:
'广播信息
ReDim ByteArray(Len(Gave(Index + 1)))'Gave()为自定义结构类型变量
CopyMemory ByteArray(0), Gave(Index + 1), Len(Gave(Index + 1))'将Gave()变量转换为Byte
For i = 0 To 3
If Gave(Index + 1).CHY(i).CEN <> 0 Then
tcpServer(Gave(Index + 1).CHY(i).CEN).SendData ByteArray()
End If
Next
这段代码在运行过程中,确实执行了,但几个在线的客户中,经常是只有一个客户端收到信息,其实收不到。(几个在线的客户向服务器发送信息却很正常)
还有更怪的事:如果上述代码在断点调试方式一行一行运行,所有的客户都能收到,如果不断点,大部分都收不到。
怪!
盼大家帮忙解答。盼大家帮忙解决:如果才能让所有的客户都能收到消息?
解决方案 »
- ADODC控件上的四个按钮分别对应的事件是什么?
- 自定义了一种图像格式,支持图层,要使Explorer支持显示其缩略图,是不是一个复杂的任务啊?
- 请问,VB程序员能被称为程序员吗?VB程序员好像最被人看不起吧?
- 谁能解答我请他吃饭
- 新手提问请多多关照!麻烦大家请问怎么在文本控件中换行。
- 求VB程序设计幻灯片教程!
- 急!!在使用datareport控件时,为什么不能连续点击显示报表的按钮???在线等待>
- vb6如何把数据传到Excel并用Excel画曲线
- 求助:怎样用FINDFIRST进行模糊查询?
- 如何用程序实现对一个Access数据的压缩??
- 求 !!! visual studio 6 企业版 英文版 下载
- 窗体中mschar控件中的图形不见了(偶是初学者太笨别拍我...)
CopyMemory ByteArray(0), Gave(Index + 1), Len(Gave(Index + 1))'将Gave()变量转换为Byte
For i = 0 To 3
If Gave(Index + 1).CHY(i).CEN <> 0 Then
tcpServer(Gave(Index + 1).CHY(i).CEN).SendData ByteArray()
'//加
DoEvents
End If
Next
或者
ReDim ByteArray(Len(Gave(Index + 1)))'Gave()为自定义结构类型变量
CopyMemory ByteArray(0), Gave(Index + 1), Len(Gave(Index + 1))'将Gave()变量转换为Byte
For i = 0 To 3
If Gave(Index + 1).CHY(i).CEN <> 0 Then
tcpServer(Gave(Index + 1).CHY(i).CEN).SendData ByteArray()
'//加
Dim WaitTime As Integer '延迟
WaitTime = 0
Do Until WaitTime = 1000
DoEvents:WaitTime = WaitTime + 1: Loop
End If
Next
CopyMemory ByteArray(0), Gave(Index + 1), Len(Gave(Index + 1))'将Gave()变量转换为Byte
For i = 0 To 3
If Gave(Index + 1).CHY(i).CEN <> 0 Then
tcpServer(Gave(Index + 1).CHY(i).CEN).SendData ByteArray()
doevents
End If
Next