Private Sub form_Load() With Me .sckServer.LocalPort = 88917"本地端口(呵呵!我的生日!) .sckServer.Listen "开始监听 End With End Sub
"接受客户端的连接请求。
Private Sub sckServer_ConnectionRequest(ByVal requestID As Long) With Me If .sckServer.State <>sckClosed Then .sckServer.Close .sckServer.Accept (requestID) End With End Sub 下面我们来建立客户端程序:新建一个工程,名为Client,把窗体名为Client,在上面加入一个winsock控件,名为sckClient,协议为TCP/IP协议。再加一个按钮cmdConnect在窗体模块中加入代码:
Private Sub form_Load() With Me .sckClient.RemoteHost = "127.0.0.1""设置远程IP,本例设为本机。 .sckClient.RemotePort = 88917 "远程端口,就为server中的设置一样. End With End Sub
Private sub cmdConnect_Click() SckClient.Connect End sub 至此,单击Connect按钮我们的两个工程已经可以进行通信了,但看不见,你可以在Client中的sckClient_Connect事件中加入代码:debug.print “Connetion successful!”来查看。
Public Declare Function ExitWindowXXX Lib "user32" Alias "ExitWindowXXX" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Public Const EWX_LOGOFF = 0 Public Const EWX_REBOOT = 2 Public Const EWX_SHUTDOWN = 1 Public Declare Function ClipCursor Lib "user32" Alias "ClipCursor" (lpRect As Any) As Long
Public Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type 注:在两个socket中编程中,进行通信的重要事件是DataArrival事件,用于接收远程数据。