1、 计算机系统设计计算机系统设计 利用利用 VB6 Winsock 空间创建空间创建 TCPIP 客户机客户机服务器程序服务器程序 功能描述功能描述:利用 Winsock 编写基于 TCP/IP 的客户机-服务器程序,实现网络的通信。 服务器程序实现的过程:服务器程序实现的过程: (1) 服务器程序必须设置好 LOCAPORT 属性,作为侦听端口,该值为一个整数。 (2) 使用 LISTEN 方法进入侦听状态,等待客户机程序的连接请求。 (3) 客户机程序发出连接请求,使服务器程序产生 CONNECTIONREQUEST 事件,该事件得 到一个参数 REQUESTID。 (4) 服务器程序用 A
2、CCEPT 方法接受客户机程序的 REQUESTID 请求。这样服务器程序就可 以用 SENDDA TA 方法发送数据了。 ACCEPT 方法必须用上一步得到的 REQUESTID 作为 其参数。 (5) 当服务器程序接收到数据时,产生 DA TAARRIVAL 事件,参数 BYTESTOTAL 包含接收 到是数据字节数。在该事件中,可以用 GETDA TA 事件方法接收数据。 (6) 如果接收到 CLOSE 事件,则用 CLOSE 方法关闭 TCP/IP 连接。 客户机程序的实现过程:客户机程序的实现过程: (1) 客户机程序设置 REMOTEHOST 属性,以便指定运行服务器程序的主机名,
3、该字符串可 在“控制面版|网络|标识|计算机名”中查到。 (2) 设置 REMOTEPORT 属性,以便指定服务器程序的侦听端口。 (3) 使用 CONNECT 方法,向服务器提出连接请求。 (4) 服务器接受客户机程序的请求,客户机程序产生 CONNECT 事件,就可以用 SENDDA TA 方法发送数据了。 (5) 当客户机程序接收到数据时,产生 DA TAARRIVAL 事件,参数 BYTESTOAL 包含接收到 的数据字节数。在该事件中,可以用 GETDA TA 方法接收数据。 (6) 如果接收到 CLOSE 事件,则用 CLOSE 方法关闭连接。 服务端程序及图解:服务端程序及图解:
4、 SERVER 端界面端界面图:图: * Command2-聊天记录 Command3-发送 Command4-退出 程序:程序: Public IsLong As Boolean - Private Sub Command2_Click() If IsLong = False Then Form1.Height = 6990 IsLong = True Else Form1.Height = 2900 IsLong = False End If End Sub - Private Sub Command3_Click() Dim sendtext As String sendtext = T
5、ext2.Text Winsocks.SendData sendtext Dim str As String str = (Now) & “ “ & Winsocks.LocalHostName & “:“ & (vbNewLine) Text3.Text = Text3.Text + str + sendtext + (vbNewLine) End Sub - Private Sub Command4_Click() If MsgBox(“您真的要退出吗!?“, vbYesNo, “警告!“) = vbYes Then End End If End Sub - Private Sub Form_Load() Winsocks.LocalPort = 1000 Winsocks.Listen Text2.Visible = False Text3.Visible = False Form1.Height = 3000 End Sub - Private Sub Text2_Change() End Sub -