listen是用在服务端的 和 connect用在客户端
如果是客户端:
wsk(0).RemoteHost=xxx.xx.xx.xxx
wsk(0).RemotePort=5000
wsk(0).Connect
否则:
wsk(0).LocalPort=5000
wsk(0).Listen

解决方案 »

  1.   

    忘了说了,要求客户端,具有listen功能,服务端具有connect功能。
    也就是说,listen和connet要在一起使用!!
      

  2.   

    wsk(0).listen           wskclient(0).connect
    wsk(1).accept           wskclient(1).connect
    wsk(2).accept           wskclient(2).connect
    ....                    .....
      

  3.   

    wsk(0).LocalPort=5000
    wsk(0).Listenany error message?
      

  4.   


    用两个Socket 数组分别表示服务器端 svr() 与客户端 cnt(),客户端请求连接时,服务器svr(0)响应并用svr(n)接受连接服务器端要连接客户端时,使用cnt(n)向客户机请求连接要查看Socket状态,可以看其State属性
      

  5.   

    我不是笨蛋,回答些有用的
    http://pandoraliu.myetang.com/gd.rar
    源码在这里,大家看了以后,改进一下吧!
    有好的建议,有好的修改,给我消息,或回贴
    问题在frmSelSerCln的winsock控件的DataArrial中
    问题在frmServer的winsock控件的DataArrial中
    '---send beFrd IP to those who already online user-----
        Case sData = "/SendBeFrdIPs"
            rsBeFrd.Open "select * from " & sUserID & "", ConBeFrd, adOpenStatic, adLockOptimistic
            If rsBeFrd.RecordCount > 0 Then
                Do While Not rsBeFrd.EOF
                    If Trim(rsBeFrd("BeFrdIP")) <> "/" Or Trim(rsBeFrd("BeFrdIP")) <> Null Then
                    Dim aa As String
                        aa = rsBeFrd("BeFrdID")
                        wskSBeIP(0).Connect Trim(rsBeFrd("BeFrdIP")), ConPort
                        wskSBeIP(0).SendData "/BeFrdIP#" + sUserID + "*" + Trim(sUserIP) + "~"
                        rsBeFrd.MoveNext
                        Exit Do
                    End If
                    rsBeFrd.MoveNext
                Loop
            End If
      

  6.   

    关于服务与客户的端怎么写我也不说了,关键是你对服务端与客户的winsock事件
    有没有写信了,你可以在winsock的Connect事件中写了msgbox "成功!"
    winsock的DataArrival事件是中用(winsock1.SendData 与winsock1.GetDate)
    来发送你所要传的数据!这个我以前也做过,只是那时候的代码给丢,不过当时
    我确实做成了。很有意思的。(其实可能已通了,关键是你对写winsock事件时是不是写对了)