【正文】
= 6 Then 39。注釋: 關閉連接 End End IfEnd SubPrivate Sub Form_Load() If Then MsgBox 系統(tǒng)已加載,請查看任務攔!, 48, 信息提示 End End If flag = False 0, 0 Load Form2 39。打開Form2進入監(jiān)聽狀態(tài)End SubPrivate Sub Send_Click() Dim str As String On Error GoTo X 39。防止鏈路中斷 = 11 39。鼠標指針樣式 If Right(, 1) Chr(10) Then 39。為消息回行 str = + Chr(13) + Chr(10) Else str = End If If flag Then amp。 : amp。 str 39。如果已連接,發(fā)送消息 = Exit SubX: MsgBox 連接中斷!, 48, 提示 39。消息提示 39。關閉連接 = 0 39。鼠標指針樣式設置 = True (4) = 等待連接 39。狀態(tài)欄設置 = 0 = 0 Exit SubEnd SubPrivate Sub Timer1_Timer() flag = False = False = 0 = 0 MsgBox 網(wǎng)絡連接失敗(超時) ! (4) = 等待連接 = True = FalseEnd SubOption Explicit39。Download by Const maxn = 200 39。最大同時連接本機的客戶數(shù)Dim user(maxn) As BooleanDim username(maxn) As StringDim flag As BooleanPrivate Sub Command1_Click() End SubPrivate Sub Command2_Click() Load Form1 End SubPrivate Sub Form_Load() Dim str1 As String 39。注釋:winsock控件 wsk1 作為服務器程序監(jiān)聽 = 3000 End SubPrivate Sub Text1_Change()End SubPrivate Sub wsk1_ConnectionRequest(ByVal requestID As Long) Dim i As Long Dim j As Long For i = 1 To maxn 39。當一客戶請求時給啟動一Winsock控件標志號 If Not user(i) Then user(i) = True If Then 39。用戶名設置 username(i) = + Chr(13) + Chr(10) Else username(i) = 無名士 + Chr(13) + Chr(10) End If Exit For End If Next i If i maxn Then MsgBox 該聊天室已滿 Exit Sub End If Load wsk2(i) 39。當用戶連接聊天室,加載一個Winsock控件 wsk2(i).Accept requestID 39。進行連接 39。判斷第一個進入聊天室的用戶 If = And flag = False Then wsk2(i).SendData 您是今天第一個進入本聊天室的用戶 + Chr(13) + Chr(10) flag = True Else wsk2(i).SendData End If End SubPrivate Sub wsk2_Close(Index As Integer) Dim i As Integer For i = 1 To maxn 39。發(fā)送退出消息 If user(i) And i Index Then wsk2(i).SendData username(Index) amp。 退出聊天 + Chr(13) + Chr(10) End If Next i wsk2(Index).Close 39。關閉連接 Unload wsk2(Index) 39。卸載 WinSock 控件 user(Index) = FalseEnd SubPrivate Sub wsk2_DataArrival(Index As Integer, ByVal bytesTotal As Long) Dim str As String Dim i As Long wsk2(Index).GetData str 39。獲取消息 If Right(Trim(str), 5) = 進入聊天室 Then username(Index) = Left(str, Len(str) 5) 39。獲取用戶昵稱 For i = 1 To maxn If user(i) And i Index Then wsk2(i).SendData str + Chr(13) + Chr(10) 39。發(fā)送消息 ElseIf user(i) And i = Index Then 39。發(fā)送歡迎信息 wsk2(i).SendData 歡迎進入本聊天室 + Chr(13) + Chr(10) End If Next i Else = + str 39。添加聊天信息 For i = 1 To maxn If user(i) Then wsk2(i).SendData str 39。向聊天室內(nèi)其他用戶發(fā)送消息 End If Next i End If = Len()End