-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/),使我們更容易 –