模拟QQ消息发送需要建立2个工程,一个作为服务器端,一个作为客户端,偶通过用客户端向服务器端发送消息,并在服务器端显示发送的消息来介绍winsock。 大家可以在此基础上用VB作个局域网的聊天室。 偶也是刚学winsock,有什么错误或更好的方法请大家多多指教。。呵呵。 首先新建一个工程,作为服务器,在部件里找到Micrsoft Winsock Control 6.0(sp6)并选中,窗口如下: 其中: 为Winsock控件 服务器的代码如下(有注释):注意Winsock控件的名称为“ServerTCP” Private Sub cmdExit_Click() ServerTCP.Close Unload Me End Sub Private Sub Form_Load() Me.Left = 100 Me.Top = 100 ServerTCP.LocalPort = 1001 ' 设置本地端口,可以随便设置 ServerTCP.Listen ' 桢听状态,简单的说就是将服务器打开 End Sub Private Sub ServerTCP_ConnectionRequest(ByVal requestID As Long) ' 当客户端请求连接时,则触发此事件 If ServerTCP.State <> sckClosed Then ServerTCP.Close ' 当服务器为打开状态则关闭 ServerTCP.Accept requestID End Sub Private Sub ServerTCP_DataArrival(ByVal bytesTotal As Long) ' 当数据到达时,触发DataArrival事件 Dim strDate As String ServerTCP.GetData strDate ' 接受数据 If txtReceived.Text = Empty Then txtReceived.Text = strDate Else txtReceived.Text = txtReceived.Text & vbCrLf & strDate End If End Sub 然后再新建一个工程,作为客户端,一样要在部件里找到Micrsoft Winsock Control 6.0(sp6)并选中,窗口如下: 客户端的代码如下(有注释):注意Winsock控件的名称为“ClientTCP” Private Sub cmdClear_Click() ' 清空发送框 txtSend.Text = Empty End Sub Private Sub cmdConnect_Click() ClientTCP.Connect ' 连接到服务器 cmdSend.Enabled = True End Sub Private Sub cmdExit_Click() ClientTCP.Close Unload Me End Sub Private Sub cmdSend_Click() ' 发送消息 If Trim(txtSend.Text) <> Empty Then ClientTCP.SendData Trim(txtSend.Text) ' 发送消息 txtSend.Text = Empty End If End Sub Private Sub Form_Load() ClientTCP.RemoteHost = "127.0.0.1" ' 设置远程服务器的名称,既服务端的IP ClientTCP.RemotePort = 1001 ' 设置为远程服务器的端口号,必须与服务器设置的端口号一样 cmdSend.Enabled = False End Sub OK! 所有代码以完成,下面来看看效果怎样: 先在客户端按“连接。。”的命令按钮,是客户端连接到服务器,这时“发送”按钮则不在是灰色,然后再在消息框中写消息,写完消息后按“发送”按钮发送消息。 则消息会在服务器窗口中显示: 按了发送消息后:

评论