第一次调试的时候没问题,第二次调试就出错了.
是不是我第一次调试关闭时没有解除端口的绑定或没有winsock.close
造成了程序关闭,但端口仍被占用的情况.
请问该怎么解决啊.
或者运行程序时检测端口是否被占用,若被占用则使用其他的端口

解决方案 »

  1.   

    If err.Number = 10048 Then
              MsgBox "端口被另一程序占用!!!", , "提示"
          End If
      

  2.   

    使用winsock的Error事件,当出错时指到一个地方,然后根据代码判断出错的内容.
    sckOutOfMemory 7 内存不足 
    sckInvalidPropertyValue 380 属性值无效。 
    sckGetNotSupported 394 属性不可读。 
    sckSetNotSupported 383 属性是只读的。 
    sckBadState 40006 所请求的事务或请求本身的错误协议或者错误连接状态。 
    sckInvalidArg 40014 传递给函数的参数格式不确定,或者不在指定范围内。 
    sckSuccess 40017 成功。 
    sckUnsupported 40018 不受支持的变量类型。 
    sckInvalidOp 40020 在当前状态下的无效操作 
    sckOutOfRange 40021 参数越界。 
    sckWrongProtocol 40026 所请求的事务或请求本身的错误协议 
    sckOpCanceled 1004 取消操作。 
    sckInvalidArgument 10014 所请求的地址是广播地址,但未设置标记。 
    sckWouldBlock 10035 套接字不成块,而指定操作将使之成块。 
    sckInProgress 10036 制造块的 Winsock 操作在进行之中。 
    sckAlreadyComplete 10037 完成操作。未进行制造块的操作。 
    sckNotSocket 10038 描述符不是套接字。 
    sckMsgTooBig 10040 数据报太大,不适于缓冲区的要求,因而被截断。 
    sckPortNotSupported 10043 不支持指定的端口。 
    sckAddressInUse 10048 地址在使用中。 
    sckAddressNotAvailable 10049 来自本地机器的不可用地址。 
    sckNetworkSubsystemFailed 10050 网络子系统失败。 
    sckNetworkUnreachable 10051 此时不能从主机到达网络。 
    sckNetReset 10052 在设置 SO_KEEPALIVE 时连接超时。 
    sckConnectAborted 11053 由于超时或者其它失败而中止连接。 
    sckConnectionReset 10054 通过远端重新设置连接。 
    sckNoBufferSpace 10055 没有可用的缓冲空间。 
    sckAlreadyConnected 10056 已连接套接字。 
    sckNotConnected 10057 未连接套接字。 
    sckSocketShutdown 10058 已关闭套接字。 
    sckTimedout 10060 已关闭套接字。 
    sckConnectionRefused 10061 强行拒绝连接。 
    sckNotInitialized 10093 应首先调用 WinsockInit。 
    sckHostNotFound 11001 授权应答:未找到主机。 
    sckHostNotFoundTryAgain 11002 非授权应答:未找到主机。 
    sckNonRecoverableError 11003 不可恢复的错误。 
    sckNoData 11004 无效名,对所请求的类型无数据记录。