//服务器端代码 
Private Sub Form_Load()
    sockserver.RemoteHost = "192.168.0.254"
    sockserver.LocalPort = 8888 'キホヒソレコナ,ラ鋓テエレ1000
    sockserver.Listen  'ソェハシユ・
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    sockserver.Close
    End Sub
    Private Sub SockServer_Close()
    sockserver.Close
    End Sub
    Private Sub SockServer_ConnectionRequest(ByVal requestID As Long)
    sockserver.Close
    sockserver.Accept requestID 'ア桄セソヘサァヌ・ャスモオトIDコナ
    End Sub
    'オアソヘサァマホ「ヒヘハセンオスエ・・, イ揵ⅴataArrivalハツシ, ヤレハツシヨミスモハユハセン, GetDataキスキィスモハユハセン?
    Private Sub SockServer_DataArrival(ByVal bytesTotal As Long)
    Dim s As String
    sockserver.GetData s
    Text1.Text = s
    End Sub
    'オアホメミ靨ェマヘサァキ「ヒヘハセンハア」ャヨサミ襍テSendDataキスキィ。」
    Private Sub Command1_Click()
    sockserver.SendData Text2.Text
    End Sub
//客户端代码Private Sub Form_Load()
    '  ヨクカィキホ愑・
    'SockCL.RemoteHost = "162.105.37.72"
    SockCL.RemoteHost = "192.168.0.254"
    '  ヨクカィキホヒソレテ・
    SockCL.RemotePort = 8888
    '  チャスモオスキホ・
    SockCL.Connect
End SubPrivate Sub SockCl_DataArrival(ByVal bytesTotal As Long)
    Dim DataStr As String
    
    '  スモハユハセンオスホトアセソミ
    SockCL.GetData DataStr
    Text2.Text = DataStr
End Sub'  マホ「ヒヘハセン
Private Sub Command1_Click()
    SockCL.SendData Text1.Text
End Sub'  ヘヒウフミ・
Private Sub Command2_Click()
    SockCL.Close
    End
End Sub
问题只能有一个用户访问可以〉〉〉多余一个时就不调用
SockServer_DataArrival()函数了〉〉〉〉???

解决方案 »

  1.   

    //服务器端代码 
    Private Sub Form_Load()
        sockserver.RemoteHost = "192.168.0.254"
        sockserver.LocalPort = 8888 
        End Sub
        Private Sub Form_Unload(Cancel As Integer)
        sockserver.Close
        End Sub
        Private Sub SockServer_Close()
        sockserver.Close
        End Sub
        Private Sub SockServer_ConnectionRequest(ByVal requestID As Long)
        sockserver.Close
        sockserver.Accept requestID 
        End Sub    Private Sub SockServer_DataArrival(ByVal bytesTotal As Long)
        Dim s As String
        sockserver.GetData s
        Text1.Text = s
        End Sub    Private Sub Command1_Click()
        sockserver.SendData Text2.Text
        End Sub
    //客户端代码Private Sub Form_Load()    'SockCL.RemoteHost = "162.105.37.72"
        SockCL.RemoteHost = "192.168.0.254"    SockCL.RemotePort = 8888    SockCL.Connect
    End SubPrivate Sub SockCl_DataArrival(ByVal bytesTotal As Long)
        Dim DataStr As String
        
        
        SockCL.GetData DataStr
        Text2.Text = DataStr
    End Sub
    Private Sub Command1_Click()
        SockCL.SendData Text1.Text
    End Sub
    Private Sub Command2_Click()
        SockCL.Close
        End
    End Sub
    针对这个例子。。你能详细说明一下吗??我是一个vb初学者!!好多地方不懂。。您能给些提示代码马????????谢谢!!!!!!!!!!!1
      

  2.   

    WskServer_ConnectionRequest这样写
      wsknew.LocalPort = 1116
      wsknew.Accept requestID
      wsknew_Connect
    每次接到请求,用一个新的Socket Accept 数量不定的时候用控件数组来实现。
      

  3.   

    用控件数组,但是要注意释放,和重复利用,否则你就over了
      

  4.   

    给一段程序
    winsock1(0)是在设计时候表单上的控件
    Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)
        Dim sid As String
        Dim i As Integer
        
        If Winsock1.Count > 1 Then
            sid = Winsock1(Index).RemoteHostIP
            For i = 1 To Winsock1.Count - 1
                If Winsock1(i).RemoteHostIP = sid Then
                    Winsock1(i).Tag = 0
                    Winsock1(i).Accept requestID
                    Exit Sub
                End If
            Next
        Else
            i = 1
        End If
        Load Winsock1(i)
        Winsock1(i).Tag = 0
        Winsock1(i).Accept requestID
    End Sub
      

  5.   

    winsock
    怎么实现非局域网的远程c/s连接的???
      

  6.   

    可以吗,
    好象不行啊,连接n个客户端就用n个winsock啊
      

  7.   

    定义控件数组不能够定义事件。
    如private withevents winsockArray() as winsock.如此定义VB会报告错误的!你们怎么解决的?要知道如果不定义定义控件数组的事件,你怎么接受数据呢?