-3
我想在java中创建一个聊天应用程序,但是当我无法发送到另一台机器时,我遇到了问题。 这里是我的代码部分:在java中的聊天应用程序
这是我的类客户:
public class EnvioSocket {
public static boolean enviarSocket(String nome, String ip, int porta,
String mensagem) {
String dados = nome + " : " + mensagem;
try {
Socket socket = new Socket(ip, porta);
OutputStream outToServer = socket.getOutputStream();
DataOutputStream out = new DataOutputStream(outToServer);
out.writeUTF(dados);
out.close();
socket.close();
} catch (UnknownHostException e) {
JOptionPane.showMessageDialog(null, e.getMessage());
return false;
} catch (IOException e) {
JOptionPane.showMessageDialog(null, e.getMessage());
return false;
}
return true;
}
}
这是我的类服务器:
public class ServidorThread implements Runnable {
private JTextArea menssage;
public ServidorThread(JTextArea menssage) {
this.menssage = menssage;
}
@Override
public void run() {
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(Porta.PORTA);
while (true) {
Socket acceptedSocket = serverSocket.accept();
DataInputStream in = new DataInputStream(
acceptedSocket.getInputStream());
String menssage = in.readUTF();
this.menssage.append(DateUtils.dateToString(new Date(), "dd/MM/yyyy HH:mm") + " " + menssage + "\n");
in.close();
acceptedSocket.close();
}
} catch (IOException e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
}
}
define a port to socket
public final class Porta {
private Porta() {
}
public static final int PORTA = 6066;
}
我只能发信息给我自己的电脑。我怎样才能解决这个问题? 我开始我的课程,内部我的课程,使GUI。
您应该首先删除所有与Swing相关的代码。您的问题与Swing无关,应该在调试时进行测试,以隔离分散注意力的非相关代码。此外,在真正的聊天应用程序中,用户界面代码将与套接字通信完全分离,所以现在不妨开始这样做。 –
服务器似乎没有向任何人发送任何东西。它只接受连接,接收第一条消息并再次关闭套接字。 – Philipp
现在,你的代码比大多数人想要阅读的要多得多。考虑将它降低到[SSCCE](http://www.sscce.org/),使我们更容易 –