【问题标题】:Simple Java Chat Program Help, Client Timesout when Connecting With Server简单的Java聊天程序帮助,连接服务器时客户端超时
【发布时间】:2010-12-06 00:22:35
【问题描述】:

我正在使用 Java TCP 套接字创建一个非常简单的 Java 聊天程序。我是套接字编程和 Java 的新手。我无法连接服务器,因为每次客户端连接到服务器时都会超时。可能是因为我输入了错误的IP地址——我不知道。

这是服务器的代码:

       try
       {

            int fport = Integer.valueOf(port.getText());
            ServerSocket server = new ServerSocket(fport);
            Socket socket = server.accept();
            msg.append("\\n Server is listening to port:" + port.getText());
            BufferedReader input = new BufferedReader( new InputStreamReader(socket.getInputStream()));
            PrintWriter out = new PrintWriter(socket.getOutputStream());
            out.print(msgtxt.getText());
            msg.append("\n\n" + input.readLine());
            msg.append("\n\n" + Nombre.getText() + msgtxt.getText());


       }
       catch (Exception ex)
       {
           msg.setText("\n\n" + "Error:" + ex.getMessage());
       }

这是客户端的代码:

        try
        {
            int iport = Integer.valueOf(port.getText());
            int i1;
            int i2;
            int i3;
            int i4;
            i1 = Integer.valueOf(ip.getText());
            i2 = Integer.valueOf(ip1.getText());
            i3 = Integer.valueOf(ip2.getText());
            i4 = Integer.valueOf(ip3.getText());
            byte[] b = new byte[] {(byte)i1, (byte)i2, (byte)i3, (byte)i4 };
            InetAddress ipaddr = InetAddress.getByAddress(b);
            Socket sock = new Socket(ipaddr, iport);
            BufferedReader input = new BufferedReader(new InputStreamReader(sock.getInputStream()));
            BufferedWriter output = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream()));
            output.write(m.getText());
            while(!input.ready()){}
            msg.setText("\n\n" + input.readLine());
            msg.setText("\n\n" + m.getText());
            output.close();
            input.close();
        }
        catch (Exception ex)
        {
            msg.setText("\n\n" + "Error: " + ex.getMessage());
        }

【问题讨论】:

    标签: java netbeans chat


    【解决方案1】:

    验证您是否可以使用 telnet 连接到服务器(在 Windows 上,您可能需要安装它,因为它不再默认安装)。

    基本上,打开到您的服务器的连接并查看它是否有效:

    telnet host port
    

    如果可行,则问题可能不在于建立连接,而在于等待服务器的响应(将例外添加到您的问题中)。

    一个注释: 您可以在不创建 INetAddress 的情况下打开套接字,只需 new Socket(hostname, port)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-16
      • 2020-03-25
      • 2016-05-29
      • 2014-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多