用VB6.0的Winsock控件进行通信时出现实时错误87代码如下:
With Winsock1 
.RemoteHost = "192.168.1.100" 
.RemotePort = 5001 
.LocalPort = 5002 
End With.localport=5002  这是我换上的.以前错误87出现在 bind 5002上.然后我把bind  换成了 localport后错误87不出现在这个位置了.但是出现在了.Winsock1.SendData Text37.Text有没有高手帮下忙...好长时间了.解决不掉.不知道是什么原因
.用的是UDP连接..如果把.remoteHost改为计算机名错误还是存在.
求高手解决.分不多了.帮帮小弟吧...

解决方案 »

  1.   

    你加上.Connect。进行连接试试而且。最好是用2个Winsock 一个是服务器端一个是客户端。这样代码写起来看的就容易多了。
      

  2.   

    而且。服务器端要记得.Listen,就是监听客户端发过来的信号。也就是你的5001端口。
      

  3.   

    首先谢谢你.
    我用的是UDP连接.不需要监听吧.
    有客户端和服务端的.
    现在的情况是这样的.程序在我电脑上运行一点问题也没有.
    在第二台电脑运行出现错误87.然后关闭在运行一下.运行正常.
    在第三台电脑运行出现错误87.无论怎么改.就是不能运行.
    我现在在怀疑是不是电脑的问题.
    出现的这个错误很怪就是提示错误87其它什么信息没有.
      

  4.   

    给你发个例子。最简单的连接例子。
    而且,服务器端和客户端端口要一样才可以估计你的错误就因为为使用了1个控件来做服务器和客户端。Private Sub Command1_Click()
            Winsock1.RemoteHost = "192.168.0.7"
            Winsock1.RemotePort = 5002
            Winsock1.Connect
    End SubPrivate Sub Form_Load()
        Winsock2.LocalPort = 5002
        Winsock2.Listen
    End SubPrivate Sub Winsock1_Connect()
    MsgBox "连接服务器成功成功"
    End Sub
      

  5.   

    还是谢谢你.你的语句我有点不明白了.你用的是UDP吗.
    UDP不需要winsock2.listen吧.
    我没得选择.必须要用UDP.....
    我也想用TCP.但是没办法..必须得用UDP
      

  6.   

    With Winsock1  
    .RemoteHost = "192.168.1.100"  
    .RemotePort = 5001  
    .LocalPort = 5002  
    .Bind 5001 
    End With 另外一端
    Private Sub Form_Load() 
    Winsock1.LocalPort =5002
    Winsock1.RemoteHost = "192.168.1.100" 
    Winsock1.RemotePort = 5001
    Winsock1.Bind 5002
    End Sub 
      

  7.   

    你不bind就  send 怎么会不报错。
      

  8.   

    bind 和localport有什么区别吗?
    为什么在我的电脑上不bind就一个localport就可以呢.
    也许吧.等我试试.今天下班了.如果能通过.明天就贴.
      

  9.   

    localport是指定本身端口號
    bind是綁定端口號
    bind也可以綁定本身IPWith Winsock1  
    .RemoteHost = "192.168.1.100"  
    .RemotePort = 5001  
    .LocalPort = 5002  
    .bind 5002
    End With 
    這樣應當不會錯