电竞比分网-中国电竞赛事及体育赛事平台

分享

【重要】winsock 如何允許更多客戶端同時連接

 nxhujiee 2019-03-26
━━━━━━━━━━━━━━━━━━━━━━━━━

  當您的應用程序架構是屬于主從式架構時,一般來說,客戶端應該不止一個而已。但是,如果每一個客戶端使用的一組連接端口時,那么如果有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 As Integer
    
connmax 200
    sckserver(0).localport 1001
    sckserver(0).listen
    For To connmax
        load sckserver(i)
    
Next
End Sub

Private Sub 
sckserver_connectionrequest(index As Integer,ByVal requestid As Long)
    
Dim As intege
    For 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”。 

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多