与远程主机(EINVAL)的TCP套接字连接失败

时间:2014-05-28 19:07:30

标签: java android

我是新人,我有一个问题。 在android中,我无法通过TCP Socket连接任何远程地址。当我尝试连接时,调试器显示错误:

Exception: failed to connect to /23.20.47.114 (port 9339) after 2000ms: connect failed: EINVAL (Invalid argument), OSVersion: 4.1.1(Jellybean)

代码:

    void run(){
    Socket s=new Socket();
    s.bind(getAddress("192.168.0.45",8080));    <-It's bound successfully.
    s.connect(getAddress("23.20.47.114",9339));   <-Error
    writeData(s);
    }
    InetSocketAddress getAddress(String host, int port){[code]}
    void writeData(Socket so){[code]}

注意:此服务器始终处于打开状态,对不起我的英语。

1 个答案:

答案 0 :(得分:1)

您已使用bind()将套接字绑定到本地IP地址,因此将同一套接字连接到远程服务器也没有意义。尝试删除bind()语句。