Socket发送数据问题

edwardcsdn 2006-10-27 10:11:23
最近在工作中遇到了点Socket问题。

程序分为客户端和服务器端两部分。服务器端Socket设置成数组形势的。

客户端主要是从数据库中提取数据,然后自动发送,大概的数据量是100到1000条不等。但是不知道为什么,无论有多少数据,发送后从客户端看是每一条都发送了,但是在服务器端不知道为什么只能接收到一条。

请指导一下

客户端是单独一个Socket进行发送。

服务器端Socket程序如下:

Private Sub Form_Load()
i = 1
tcpServer(i - 1).LocalPort = 2000
tcpServer(i - 1).Listen
End Sub

'Socket连接
Private Sub tcpServer_ConnectionRequest(index As Integer, ByVal requestID As Long)
If i > 500 Then
i = 1
End If
If tcpServer(i - 1).State <> sckClosed Then
tcpServer(i - 1).Close
Load tcpServer(i)
tcpServer(i).Listen
End If
tcpServer(i - 1).Accept requestID
i = i + 1
End Sub

...全文
228 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
king8192 2006-11-29
  • 打赏
  • 举报
回复
看看对你有用没??
public serverindex as integer
public ReceiveData() as byte

Private Sub Form_Load()
'侦听
outWinsock(0).Bind intport, IP
outWinsock(0).Listen

End Sub

'关闭socket
Private Sub outWinsock_Close(Index As Integer)
Dim i As Long
If Index > 0 Then
For i = 1 To Index
outWinsock(i).Close
Next
End If
End Sub

'客户端请求连接
Private Sub outWinsock_ConnectionRequest(Index As Integer, ByVal requestID As Long)
serverindex = serverindex + 1 '加载新的socket数组
Load outWinsock(serverindex)
outWinsock(serverindex).Accept requestID
End Sub

'接收客户端发送来的数据
Private Sub outWinsock_DataArrival(Index As Integer, ByVal bytesTotal As Long)
ReDim ReceiveData(bytesTotal) As Byte
outWinsock(Index).GetData ReceiveData, vbArray + vbByte
End Sub
gsfcstx16 2006-10-30
  • 打赏
  • 举报
回复
每条数据发送之后应该DoEvents
edwardcsdn 2006-10-27
  • 打赏
  • 举报
回复
测试过了,发送一条没有问题,只要大于1条就会出现问题。
cangwu_lee 2006-10-27
  • 打赏
  • 举报
回复
从简单逐步深入的,例如一行字的、到记录类型的,慢慢测试。

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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