客户端:
Private Sub Form_Load()
' 指定服务器主机名
SockCL.RemoteHost = "127.0.0.1"
' 指定服务器端口名
SockCL.RemotePort = 2000
' 连接到服务器
SockCL.Connect
End Sub
Private Sub SockCl_DataArrival(ByVal bytesTotal As Long)
Dim DataStr As String
' 接收数据到文本框中
SockCL.GetData DataStr
Text2.Text = DataStr
End Sub
' 向服务器发送数据
Private Sub Command1_Click()
SockCL.SendData Text1.Text
End Sub
' 退出程序
Private Sub Command2_Click()
SockCL.Close
End
End Sub
服务端:
Private Sub Form_Load()
sockserver.LocalPort = 2000 '服务器端口号,最好大于1000
sockserver.Listen '开始侦听
End Sub
Private Sub Form_Unload(Cancel As Integer)
sockserver.Close
End Sub
Private Sub SockServer_Close()
sockserver.Close
End Sub
Private Sub SockServer_ConnectionRequest(ByVal requestID As Long)
sockserver.Close
sockserver.Accept requestID '表示客户请求连接的ID号
End Sub
'当客户向服务器发送数据到达后 , 产生DataArrival事件, 在事件中接收数据, GetData方法接收数据?
Private Sub SockServer_DataArrival(ByVal bytesTotal As Long)
Dim s As String
sockserver.GetData s
Text1.Text = s
End Sub
'当我需要向客户发送数据时,只需调用SendData方法。
Private Sub Command1_Click()
sockserver.SendData Text2.Text
End Sub
根据代码加几个控件就可以了。
在ActiveX中使用winsock,一要看你把不把winsock的属性方法事件暴露给用户,如果要,你需要在你的ActiveX中重写所有winsock的属性方法和事件,如果不需要,则好说,只需在你的ActiveX中用好winsock即可。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)