简单Java聊天程序帮助,连接服务器时客户端超时
我正在使用JavaTCP套接字创建一个非常简单的Java聊天程序。我对套接字编程和Java是新手。我无法连接到服务器,因为每次客户端连接到服务器时都会超时。可能是因为我输入了错误的IP地址——我不知道 以下是服务器的代码:简单Java聊天程序帮助,连接服务器时客户端超时,java,netbeans,chat,Java,Netbeans,Chat,我正在使用JavaTCP套接字创建一个非常简单的Java聊天程序。我对套接字编程和Java是新手。我无法连接到服务器,因为每次客户端连接到服务器时都会超时。可能是因为我输入了错误的IP地址——我不知道 以下是服务器的代码: try { int fport = Integer.valueOf(port.getText()); ServerSocket server = new ServerSocket(fport);
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());
}
验证您是否可以使用telnet连接到服务器(在windows上,您可能需要安装它,因为默认情况下不再安装它) 基本上,打开与服务器的连接并查看它是否正常工作:
telnet host port
如果有效,问题可能不在于建立连接,而在于等待服务器的响应(将异常添加到问题中)
注意:
您可以在不创建INetAddress的情况下打开套接字,只需创建新套接字(主机名、端口)