为什么用winsock控件连续发数据发到1000多次时就会变慢?部分代码如下Private Sub Command3_Click()For i
为什么用winsock控件连续发数据发到1000多次时就会变慢? 部分代码如下
Private Sub Command3_Click() For i = 0 To Text2.Text - 1 If Winsock1(i).State <> 0 Then Winsock1(i).Close End If Winsock1(i).Connect "www.XXX.com", 80 Next End Sub Private Sub Winsock1_Connect(Index As Integer) Winsock1(Index).SendData da 'da为http Get数据 a = a + 1 End Sub Private Sub Winsock1_SendComplete(Index As Integer) Call fin(Index) End Sub Private Sub fin(i As Integer) If Winsock1(i).State <> 0 Then Winsock1(i).Close End If Winsock1(i).Connect "www.XXX.com", 80 End Sub
不可以这样的,因为服务端收到数据后会主动关闭连接,而我的意愿是连续发数据到服务器,由于服务器会自主关闭连接那不如在SendComplete时客户端就close再Connect以提高速度,不必等服务端close再close [其他解释] Private Sub Command3_Click() For i = 0 To Text2.Text - 1 If Winsock1(i).State <> 0 Then Winsock1(i).Close End If Winsock1(i).Connect "www.XXX.com", 80 Next End Sub 和 Private Sub Winsock1_SendComplete(Index As Integer) Call fin(Index) End Sub 这两者重复了。虽然没造成明显或严重的错误,但引起楼主所说情况一点不意外。如果你换成一种带有计算的操作,看看结果会怎样就明白了。 [其他解释] 你这是想DDOS么? [其他解释]