当前位置: 首页 > 知识库问答 >
问题:

连接到服务器时客户端套接字超时

龚苏燕
2023-03-14

当我尝试使用套接字将物理设备连接到服务器时,我遇到了一个问题。在服务器端,它似乎不接受任何连接,而在客户端,套接字超时。你知道为什么会这样吗?

我在下面提供我的代码

服务器代码:

public void run()
    {
        // TODO Auto-generated method stub
        try{
        gamePending = false;
        pid = 0;
        while(pid < 2){
            System.out.println("Hello from run loop on game");
            Socket tempSocket = server.accept();
            System.out.println("Client connected at " + tempSocket.getLocalPort());
            PrintWriter tempWriter = new PrintWriter(new BufferedWriter (new OutputStreamWriter(tempSocket.getOutputStream())),true);
            tempWriter.println("" + pid);

            players[pid] = new Client(tempSocket, pid, this);
            players[pid].start();
            gamePending = true;
            if(pid == 0){sendMsg(pid, "waiting for other player");}
            pid++;
        }
        }
        catch(Exception e){
            System.out.println("There has been an Error. Game will be Terminated.");
        }
        //Start new game for the next two players...
        new Game();
    }

客户端:

public void run() {
    // Connects to the Server....
    try {
        socket = new Socket("192.168.1.116", 9090);
    } catch (UnknownHostException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    try {
        in = new BufferedReader (new InputStreamReader(socket.getInputStream()));
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    try {
        out = new PrintWriter(socket.getOutputStream(),true);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

11-16 23:32:11.016:W/系统。错误(24213):java.net。ConnectException:无法连接到/192.168.1.116(端口9090):连接失败:ETIMEDOUT(连接超时)11-16 23:32:11.016:W/System。err(24213):位于libcore.io.IoBridge.connect(IoBridge.java:114)11-16 23:32:11.016:W/System。错误(24213):位于java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)11-16 23:32:11.026:W/System。err(24213):位于java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)11-16 23:32:11.026:W/System。err(24213):位于java.net.Socket.connect(Socket.java:842)11-16 23:32:11.026:W/System。错误(24213):位于vatos.locos.spheroknockout.Connection.run(Connection.java:22)11-16 23:32:11.026:W/System。err(24213):在java.lang.Thread.run(Thread.java:841)11-16 23:32:11.026:W/System。err(24213):由:libcore.io引起。ErrnoException:连接失败:ETIMEDOUT(连接超时)}

共有1个答案

湛同
2023-03-14

我不能肯定(因为它没有出现在你的代码中),但我认为服务器不在同一个端口(9090)。这可能是主要问题,但服务器或客户机也可能被防火墙阻止(即使它们运行在同一台机器上)。

 类似资料:
  • 真的需要你帮忙。 我的项目是通过电缆连接两台PC机,并使用tcp套接字将客户端文本框形式的字符串发送到服务器。问题是ATI只能发送一个字符串,然后连接就会关闭。 注意:某个端口上的连接将在表单加载中建立并成功。

  • Java: 在C#中-它停止在“receiver=listener.accept();”在java(android)中-它停止于“sender_socket=new Socket(serverAddr,SERVERPORT);”这应该是java套接字函数的问题--需要另一个函数连接到C#-server。

  • 我试图用java实现一个客户端服务器,在这里我读取客户端中的输入并在服务器中执行UperCase,然后返回客户端并打印UperCase。我使用ObjectOutputStream和ObjectInputStream进行读写,但是当我在客户机中键入一个msg时,程序会显示以下错误: Digite uma msg casa java.io.eofexception位于java.io.datainput

  • 首先我要感谢你花时间... 我在macbook中用C++创建了一个服务器套接字,在运行windows XP的不同机器中用Java创建了一个客户机/套接字。我已将端口指定为5000,但无法指定正确的主机,因此无法进行连接。当我在windows xp中使用WinSock2创建一个C++服务器/套接字时,当我使用本地主机时,连接是完美的...有什么想法吗??? 提前Thnx int main(int a

  • 如何使用套接字将Swift客户端连接到Java服务器?如何在客户端和服务器之间发送不同的数据类型?

  • Lua客户机中的on connection事件被触发并打印“connected”,但Node.js socket.io服务器中的on connection事件没有被触发。我用Python套接字服务器尝试了Lua客户机,它工作得很好!我还尝试了一个带有Javascript套接字客户端的Node.js套接字服务器,它运行得很好! NodeMCU和socket.io之间是否存在兼容性问题?