Private MaxChan As Integer '這個不用解釋了吧?
Private Sub cmdexit_Click()'這個過程就是當按鈕cmdexit被按下時,程序結束。
結束
末端接頭
私有子窗體_Load()
將I標註為整數
MaxChan = 15 '給MaxChan賦值。
對於i = 1到MaxChan-1 '周期
Load sckServer(i)'加載winsock控件數組中的元素。
接下來我
Scklisten。localport = 1001 '將名為scklisten的本地端口設置為1001。
開始監聽端口。
末端接頭
Private Sub sckBusy_Close()'此進程在sckBusy的winsock控件結束時運行,結果是關閉。
sckBusy。關閉
末端接頭
private subskbusy _ data arrival(byval bytestotal as long)'該進程是sckbusy的winsock接收客戶端發送的數據時的進程,下面這句話的意思是發送給客戶端“服務器忙,請稍後連接!”這句話。
SckBusy。SendData“服務器忙,請稍後連接!”
多項活動
末端接頭
private sub sck listen _ connectionrequest(byval request id為long)' scklisten此控件的connection request過程。
將I標註為整數
決定哪個Winsock將接受請求。
For i = 0到MaxChan-1 '循環遍歷所有winsock控件數組中的元素。
如果sckServer(i)。當控制數組中的元素未連接時,State = 0 Then'。
Exit For退出循環。
如果…就會結束
接下來我
如果sckServer(i)。State = 0 Then '如果這個winsock沒有連接。
SckServer(i)。接受requestID '同意客戶端連接。
出口接頭
如果…就會結束
如果所有的Winsock都用完了,壹個特殊的“忙”Winsock將接受請求,以防用戶的請求沒有得到響應。
為避免出錯,請斷開sckbusy控件壹次。
Sckbbusy。“acceptrequestid”讓sckbbusy與客戶端握手意味著同意客戶端連接請求。
末端接頭
private Sub sckListen _ Error(ByVal Number為Integer,Description為String,ByVal Scode為long,ByVal Source為String,ByVal HelpFile為String,Byval helpcontext為Long,canceledisplayas boolean)'這個過程就是sck listen的調試過程。
“關閉”結束對scklisten的監控。
sckListen。本地端口= 1000
以上兩步是重置scklisten,讓它重新開始監聽。
末端接頭
private subskserver _ close(index as integer)'此過程在winsock控件數組中的控件關閉時進行。
SckServer(索引)。“關閉”關閉此連接。
末端接頭
private subskserver _ data arrival(index為integer,byval bytestotal為long)'當控件數組中的控件從客戶端接收到消息時。
將s作為字符串變暗
將I標註為整數
SckServer(索引)。GetData s '提取消息。
Ifucase (left (trim (s),2))=“pt”然後‘判斷是不是耳語,點對點的方式。
上面這句話中的“PT”是程序員寫的特定代碼,也就是說,如果消息的前兩個字符是PT,那就是密語。
如果提取的消息中間的第三個字符是數字,則If為數字(mid (trim (s),3,1))。
I = Mid(Trim(s),3,1)'用這個數給我賦值。
sckServer(i)。發送數據頻道。指數和指數。”& ampRight(Trim(s),Len(Trim(s))-3)將此消息轉發給編號為I的客戶端。
多項活動
如果…就會結束
“Else”廣播模式
否則就是廣播模式,就是轉發給所有客戶端。
對於i = 0到MaxChan-1 '循環
使用winsock的State屬性向連接到服務器的所有客戶端發送消息。
如果sckServer(i)。當客戶端的狀態為連接時,State = 7 Then'。
sckServer(i)。發送數據頻道。指數和指數。”& ampTrim '轉發消息
多項活動
如果…就會結束
接下來我
如果…就會結束
lstReceive。AddItem頻道。指數和指數。”& amp“Trim(s)”將收到的消息保存到列表控件lstreceive。
末端接頭
private Sub sck server _ Error(Index為Integer,ByVal Number為Integer,Description為string,ByVal Scode為long,ByVal Source為String,Byval helper為String,byval helper為Long,cancel display為boolean)'控制數組的調試過程。
SckServer(索引)。“關閉”錯誤地關閉控件。
末端接頭