2011-09-27 205 views
0
Private Sub Form_Load() 
    Winsock1.RemotePort = 22222 
    Winsock1.Protocol = sckUDPProtocol 
End Sub 

Private Sub Command1_Click() 
    Command1.Enabled = False 

    Dim sendBuff As String 

    sendBuff = "XXXXX" 

    Label1: 

    On Error GoTo Label2 
    Winsock1.RemoteHost = "andon-eds-1" 
    Winsock1.SendData sendBuff 

    Label2: 

    Winsock1.Close 
    Winsock1.Protocol = sckUDPProtocol 
    Winsock1.RemotePort = 22222 
    Winsock1.LocalPort = 0 

Label3: 

    On Error GoTo EndOfSub 
    Winsock1.RemoteHost = "andon-eds-1" 
    Winsock1.SendData sendBuff 


EndOfSub: 
Command1.Enabled = True 
End Sub 

Private Sub Command2_Click() 
Command2.Enabled = False 

On Error GoTo EndOfSub 
    Winsock1.RemoteHost = "andon-eds-1" 
    Winsock1.SendData "XXXXX" 
EndOfSub: 

Command2.Enabled = True 
End Sub 

Private Sub Command3_Click() 
On Error Resume Next 
    Command3.Enabled = False 

    Dim sendBuff As String 

    sendBuff = "XXXXX" 

    PrintWinsockProperty 

    Winsock1.RemoteHost = "andon-eds-1" 
    Winsock1.SendData sendBuff 

    PrintWinsockProperty 

    Winsock1.Close 
    Winsock1.Protocol = sckUDPProtocol 
    Winsock1.RemotePort = 22222 
    Winsock1.LocalPort = 0  

    PrintWinsockProperty 

    Winsock1.RemoteHost = "andon-eds-1" 
    Winsock1.SendData sendBuff 

    PrintWinsockProperty 

    Command3.Enabled = True 
End Sub 

“主机名‘安灯-EDS-1’不在线,我想我的应用程序可以继续VB6 Winsock错误无效的参数10014

  1. 当我单击Command我发现了一个错误无效的参数: 10014
    在>> Winsock1.SendData sendBuff < <下面LABEL3我的应用程序无法继续
  2. 当我点击命令2的2倍它可以继续,而不应用紧密
  3. 当我点击Command3它可以继续没有应用程序关闭
    我的问题是什么1.)和2)之间的区别?和
    On Error Resume Next和On Error GoTo之间有什么区别,对我的问题?

    (**我很担心我的英语技能,不好意思)
    感谢

    Private Sub Command6_Click() 
    
        Dim i As Integer 
    
        Command6.Enabled = False 
    
        On Error GoTo BeginLoop 
        Winsock1.RemoteHost = "Andon-eds-1" 
        Winsock1.SendData "XXXXX" 
    
    BeginLoop: 
    
        Resume Next 
        For i = 0 To 2 
         Winsock1.RemoteHost = "Andon-eds-" & i 
         Winsock1.SendData "XXXXX" 
    
         Debug.Print Err.Number '0 '0 '0 
        Next 
    
        On Error GoTo TestLabel 
         i = 100/0 
    
        Command6.Enabled = True 
        Exit Sub 
    
    TestLabel: 
    
    End Sub 
    
+0

尝试向我们展示了发生在该行的错误。 – Deanna

+0

Command1_Click中的“Winsock1.SendData sendBuff”在Label3下面 –

+0

您可以尝试更详细地解释您正在使用您提供的代码执行的操作吗? –

回答

0

我不知道你正在尝试用代码来执行,所以我不能回答您的整个问题,但我可以回答你的问题的这一部分:

On Error Resume Next和On Error GoTo之间有什么区别。

如果发生错误,继续下一步将导致执行继续执行下一行代码。对于On Error GoTo,这会将代码带到On Error GoTo之后的代码部分中的GoTo之后指定的标签。

0

Error 10014 (WSAEFAULT) is Bad Address

的系统,试图使用一个呼叫的一个指针参数检测到无效的指针地址。如果应用程序传递无效的指针值,或者缓冲区的长度太小,则会发生此错误。例如,如果作为sockaddr结构的参数的长度小于(sockaddr)的大小。

检查机器"andon-eds-1"可以ping OK

+0

它离线,但我想我的应用程序可以继续 –

+0

在这种情况下,您只需要以任何你喜欢的方式来处理错误 - 看看[这个链接](http://www.vb6.us/tutorials/error处理)让你开始 –