━━━━━━━━━━━━━━━━━━━━━━━━━
當您的應用程序架構是屬于主從式架構時,一般來說,客戶端應該不止一個而已。但是,如果每一個客戶端使用的一組連接端口時,那么如果有100個客戶端呢?如果有1000個客戶端呢?那么究竟要增加多少個winsock控件呢?同時,也得要分成100(或是1000)組accept子程序,接著每一部客戶端都必須記得固定的連接端口號。
其實,您大可不必如此辛苦。您可以利用Visable Basic控件數(shù)組的方式并利用監(jiān)聽用的數(shù)組元素(一般都是索引值“0”),來觸發(fā)ConnectRequest事件。接下來再利用判別控件數(shù)組元素的連接狀態(tài)來進行遠程客戶端連接。以下的程序代碼范例,就是如何讓許多遠程用戶連接到同一個連接端口號的程序代碼的模板:
Private connmax As Long
Private Sub form_load)
Dim I As Integer
connmax = 200
sckserver(0).localport = 1001
sckserver(0).listen
For I = 1 To connmax
load sckserver(i)
Next
End Sub
Private Sub sckserver_connectionrequest(index As Integer,ByVal requestid As Long)
Dim I As intege
For I = 1 To connmax
If sckserver(1).state = sckclosed Then
sckserver(I).accept requestid
End If
End If
End Sub
在上述的程序范例中,將會建立一個具有“201”個元素的sckservr控件數(shù)組。接著,利用For。。。nesxt循環(huán)的方式,來設置加載 sckserver 控件數(shù)組元素或是判斷數(shù)組元素是否正在連接中進而允許客戶端連接。至于sckservr控件數(shù)組總元素為“201”的原因在于 - “connmax 設置為200再加上sckserver(0),因此總元素數(shù)量為201”。
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請
點擊舉報。