📄 10-3.frm
字号:
VERSION 5.00
Object = "{248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0"; "MSWINSCK.OCX"
Begin VB.Form Form1
Caption = "网络聊天程序演示"
ClientHeight = 6945
ClientLeft = 165
ClientTop = 735
ClientWidth = 7080
LinkTopic = "Form1"
LockControls = -1 'True
ScaleHeight = 6945
ScaleWidth = 7080
StartUpPosition = 3 '窗口缺省
Begin MSWinsockLib.Winsock Winsock2
Left = 600
Top = 120
_ExtentX = 741
_ExtentY = 741
_Version = 393216
End
Begin MSWinsockLib.Winsock Winsock1
Left = 120
Top = 120
_ExtentX = 741
_ExtentY = 741
_Version = 393216
End
Begin VB.TextBox Text2
Enabled = 0 'False
Height = 3375
Left = 0
MultiLine = -1 'True
ScrollBars = 3 'Both
TabIndex = 1
Top = 3555
Width = 7095
End
Begin VB.TextBox Text1
Enabled = 0 'False
Height = 3495
Left = 0
MultiLine = -1 'True
ScrollBars = 3 'Both
TabIndex = 0
Top = 0
Width = 7095
End
Begin VB.Menu File
Caption = "文件"
Begin VB.Menu Listen
Caption = "监听"
End
Begin VB.Menu Connect
Caption = "连接"
End
Begin VB.Menu Disconnect
Caption = "断开"
End
Begin VB.Menu Separate
Caption = "-"
End
Begin VB.Menu Exit
Caption = "退出"
End
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Dim TextString As String
Private Sub Connect_Click()
Disconnect_Click '结束连接(监听)
Winsock2.RemoteHost = InputBox("请输入服务器主机名(IP 地址)", "输入", "127.0.0.1")
Winsock2.RemotePort = Val(InputBox("请输入服务器端口号", "输入", 1024))
Winsock2.Connect '申请连接
Connect.Enabled = False
End Sub
Private Sub Disconnect_Click()
If Disconnect.Caption = "结束监听" Then
Winsock1.Close
Listen.Enabled = True
Disconnect.Caption = "断开"
Else
Winsock2.Close
Connect.Enabled = True
Text2.Enabled = False
End If
End Sub
Private Sub Exit_Click()
Unload Me
End Sub
Private Sub Form_Unload(Cancel As Integer)
Winsock1.Close
Winsock2.Close
End Sub
Private Sub Listen_Click()
Winsock1.LocalPort = Val(InputBox("请输入监听端口号(通常大于 1024)", "输入", 1024))
If Winsock1.LocalPort > 0 Then
'输入了端口号
Disconnect_Click
Winsock1.Listen
Listen.Enabled = False
Disconnect.Caption = "结束监听"
End If
End Sub
Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii <> 13 Then
TextString = TextString + Chr(KeyAscii)
Else
Text1 = Text1 + TextString + Chr(13) + Chr(10)
Winsock2.SendData TextString
TextString = ""
End If
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
'控件监听到网络连接申请时,触发该事件
Winsock1.Close '停止监听
Listen.Enabled = True
Connect.Enabled = False
Disconnect.Caption = "断开"
Winsock2.Accept requestID
Text2.Enabled = True
End Sub
Private Sub Winsock2_Close()
'对方关闭连接时,控件触发该事件通知程序
Winsock2.Close
Connect.Enabled = True
Text2.Enabled = False
End Sub
Private Sub Winsock2_Connect()
'当控件申请并成功实现连接时,触发该事件
Text2.Enabled = True
End Sub
Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long)
'控件收到数据时,触发该事件
Dim Str As String
Winsock2.GetData Str '接收数据
Text1 = Text1 + Str + Chr(13) + Chr(10) '显示数据
End Sub
Private Sub Winsock2_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
'控件产生网络错误
Text1 = Text1 + Description + Chr(13) + Chr(10)
Select Case Number
Case 10061
Winsock2.Close
Connect.Enabled = True
End Select
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -