📄 主程序源码.txt
字号:
Private Sub Form_Load()
sckserver(0).LocalPort = 1999 '监听端口设置
sckserver(0).Listen '开始一直监听
End Sub
Private Function FindOpenWinsock() '此函数用来为新用户提供新的控件
For x = 0 To sckserver.UBound
If sckserver(x).State = 0 Then '如果状态为0,即关闭,我们可以使用它
FindOpenWinsock = x
Exit Function '跳出函数,当然也跳出了循环
End If
Next x
Load sckserver(sckserver.UBound + 1) '没有可用的,就装载一个最新的
FindOpenWinsock = sckserver.UBound '返回新的序号值,即新装载控件的序号
End Function
'御载模块
Private Sub Form_Unload(Cancel As Integer)
For i = 0 To sckserver.UBound
sckserver(i).Close
Next
End Sub
'监听关闭模块
Private Sub sckserver_Close(index As Integer)
Dim myindex As Integer
For x = 0 To List1.ListCount
If mystr(CStr(index)) = Left(CStr(List1.List(x)), 3) Then
myindex = x
Exit For
End If
Next x
List1.RemoveItem myindex
sckserver(index).Close
End Sub
'添加上线主机模块
Private Sub sckserver_ConnectionRequest(index As Integer, ByVal requestID As Long)
index = FindOpenWinsock()
sckserver(index).Accept requestID
List1.AddItem mystr(CStr(index)) & "号机:" & sckserver(index).RemoteHostIP
End Sub
'接收返回数据模块
Private Sub sckserver_DataArrival(index As Integer, ByVal bytesTotal As Long)
Dim s As String
Dim mytext As String
mytext = Text2.Text
sckserver(index).GetData s
Text2.Text = mytext & s & Chr(13)
End Sub
'函数mystr用来保持字符串的长度为3
Private Function mystr(s As String)
If Len(s) > 3 Then
MsgBox "连接的客户数超过了999 !程序会发生错误。", vbOKOnly, "新媒体软件提示"
Exit Function
End If
If Len(s) = 3 Then
mystr = s
Else
If Len(s) = 2 Then
mystr = " " & s
Else
mystr = " " & s
End If
End If
End Function
'发送命令模块
Private Sub Command1_Click()
Text2.Text = ""
Dim index As Integer '定义一个winsock数组下标变量
If List1.ListIndex = -1 Then
MsgBox "您没有选定客户机,请在已登录的客户机中选择。", vbOKOnly
Exit Sub
End If
index = Val(LTrim(Left(List1.Text, 3)))
sckserver(index).SendData Text1.Text
Text1.Text = ""
End Sub
Private Sub Command2_Click()
frmserver.Hide
Form1.Show
End Sub
Private Sub Command4_Click()
End
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -