client端函数如下:Private Sub Command1_Click() <--- CONNECT BUTTON    Dim lsLocalAddr As String    plsend_Hand = pfnc_ConnectSock("109.117.14.8", "9241", "", 0, False)
    If plsend_Hand = INVALID_SOCKET Then
        Label1.Caption = "Invalid Socket"
    Else
        Label1.Caption = "Connect Success"
    End IfEnd Sub
Public Function pfnc_ConnectSock(ByVal Host As String, ByVal Port As Long, retIpPort As String, ByVal HWndToMsg As Long, ByVal Async As Boolean) As Long
    Dim s As Long, SelectOps As Long, dummy As Long
    Dim sockin As sockaddr
    sockin = saZero
    sockin.sin_family = AF_INET
    sockin.sin_port = htons(Port)
    If sockin.sin_port = INVALID_SOCKET Then
        pfnc_ConnectSock = INVALID_SOCKET
        Exit Function
    End If
    sockin.sin_addr = pfnc_GetHostByNameAlias(Host)
    If sockin.sin_addr = INADDR_NONE Then
        pfnc_ConnectSock = INVALID_SOCKET
        Exit Function
    End If
    
    retIpPort = pfnc_GetAscIP(sockin.sin_addr) & ":" & ntohs(sockin.sin_port)
    这里retIpPort 的值是 :109.117.14.8:9241     s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) <---- 这里出错,s=-1
    If s < 0 Then
        pfnc_ConnectSock = INVALID_SOCKET
        Exit Function
    End If
    .......省略......
    pfnc_ConnectSock = s
End Function
Public Function pfnc_GetAscIP(ByVal inn As Long) As String
    Dim nStr As Long
    Dim lpStr As Long
    Dim retString As String
    retString = String(32, 0)
    lpStr = inet_ntoa(inn)
    If lpStr Then
        nStr = lstrlen(lpStr)
        If nStr > 32 Then nStr = 32
        MemCopy ByVal retString, ByVal lpStr, nStr
        retString = Left(retString, nStr)
        pfnc_GetAscIP = retString
    Else
        pfnc_GetAscIP = "255.255.255.255"
    End If
End FunctionPublic Function pfnc_GetHostByNameAlias(ByVal HostName As String) As Long
    Dim phe As Long
    Dim heDestHost As HostEnt
    Dim addrList As Long
    Dim retIP As Long
    retIP = inet_addr(HostName)
    If retIP = INADDR_NONE Then
        phe = gethostbyname(HostName)
        If phe <> 0 Then
            MemCopy heDestHost, ByVal phe, hostent_size
            MemCopy addrList, ByVal heDestHost.h_addr_list, 4
            MemCopy retIP, ByVal addrList, heDestHost.h_length
        Else
            retIP = INADDR_NONE
        End If
    End If
    pfnc_GetHostByNameAlias = retIP
End Function服务器端绝对没有问题,我同事已经用他的CLIENT端程序测试过了,可以连上
希望有高人指点,谢谢!