1、 为什么在客户端我发出去之后怎么会在dataarrival中收到1个字节,然后就报错2\  在服务端的dll我该怎么用呢 就set mfrmWinsock= nothing 吗 有例子吗  谢谢'客户端DLL中接口类(记得加个窗体frmWinsock,窗体上加个控件Winsock1)
Private WithEvents mobjWinsock As Winsock
Private mfrmWinsock As frmWinsockPrivate Sub Class_Initialize()
   Set mfrmWinsock = New frmWinsock
   Load mfrmWinsock
   Set mobjWinsock = mfrmWinsock.Winsock1
   mobjWinsock.Protocol = sckUDPProtocol
mobjWinsock.RemoteHost = "192.168.0.32"
   mobjWinsock.Bind 1002   mobjWinsock.RemotePort = 1000
'   mobjWinsock.LocalPort = 1002 '这里是客户端端口,和服务器端的RemotePort必须一致
'   mobjWinsock.RemoteHost = "服务器端计算机名"
'   mobjWinsock.RemotePort = 1001 '这里是服务器端口
   
'   If mobjWinsock.Protocol = sckTCPProtocol Then
'      mobjWinsock.Connect
'   ElseIf .Protocol = sckUDPProtocol Then
'      mobjWinsock.Bind 1002
'   End If
End SubPrivate Sub Class_Terminate()
   Set mobjWinsock = Nothing
   Unload mfrmWinsock
End Sub'一个公共方法
Public Sub SendData(ByVal vstrData As String)
'   Dim arrbyt() As Byte
'   arrbyt = StrConv(vstrData, vbFromUnicode)
   mobjWinsock.SendData vstrData 'arrbyt
End Sub'接收
Private Sub mobjWinsock_DataArrival(ByVal bytesTotal As Long)
'   Dim arrbyt() As Byte
'   Dim strData As String
   mobjWinsock.GetData strData  'arrbyt, vbArray + vbByte
''   strData = StrConv(arrbyt, vbUnicode) '这里接收到的字符串
   Debug.Print strData '将收到的字串打印到立即窗口
'End Sub在frmmfrmWinsock中:
Dim aa As New Class1Private Sub Command1_Click()
Dim ddd As String
ddd = "aaaa"
aa.SendData ddd
End Sub'服务器端
Private WithEvents mobjWinsock As Winsock
Private mfrmWinsock As frmWinsockPrivate Sub Class_Initialize()
   Set mfrmWinsock = New frmWinsock
   Load mfrmWinsock
   Set mobjWinsock = mfrmWinsock.Winsock1
   mobjWinsock.Protocol = sckUDPProtocol
'   mobjWinsock.RemoteHost = "192.168.0.29"
'   mobjWinsock.RemotePort = 2000
   mobjWinsock.Bind 1000
'   mobjWinsock.LocalPort = 1001 '这里是服务器端口,和客户端的RemotePort必须一致
'   mobjWinsock.RemoteHost = "客户端计算机名"
'   mobjWinsock.RemotePort = 1002 '这里是客户端口
'
'   If mobjWinsock.Protocol = sckTCPProtocol Then
'      mobjWinsock.Listen
'   ElseIf mobjWinsock.Protocol = sckUDPProtocol Then
'      mobjWinsock.Bind 1001 '这里是服务器端口,和客户端的RemotePort必须一致
'   End If
End SubPrivate Sub Class_Terminate()
   Set mobjWinsock = Nothing
   Unload mfrmWinsock
End Sub'Private Sub mobjWinsock_ConnectionRequest(ByVal requestID As Long)
'
'   If mobjWinsock.Protocol = sckTCPProtocol Then
'      If mobjWinsock.State <> sckClosed Then
'         mobjWinsock.Close
'      End If
'      mobjWinsock.Accept requestID
'
'   ElseIf mobjWinsock.Protocol = sckUDPProtocol Then
'   End If
'End Sub'一个公共方法
Public Sub SendData(ByVal vstrData As String)
   Dim arrbyt() As Byte
   arrbyt = StrConv(vstrData, vbFromUnicode)
   mobjWinsock.SendData arrbyt
End Sub'接收
Private Sub mobjWinsock_DataArrival(ByVal bytesTotal As Long)
   Dim arrbyt() As Byte
   Dim strData As String
   mobjWinsock.GetData arrbyt, vbArray + vbByte
   strData = StrConv(arrbyt, vbUnicode) '这里接收到的字符串
   Debug.Print strData '将收到的字串打印到立即窗口
End Sub