我准备了一个程序作为客户端,另一个程序作为服务器。
我希望能够向服务器发送消息,然后服务器会将消息转发给也连接到服务器的另一个客户端。
因此服务器应该将消息转发给其他客户端。
我怎样才能做到这一点,我需要阅读哪些内容?
这就是我现在得到的。
服务器.java
package server;
import java.net.*;
import java.io.*;
import javax.swing.*;
public class Server{
public static void run() {
ServerSocket serverSocket = null;
Socket socket = null;
try{
while(true){
serverSocket = new ServerSocket(5555);
socket = serverSocket.accept();
InputStreamReader streamReader = new InputStreamReader(socket.getInputStream());
BufferedReader bufferedReader = new BufferedReader(streamReader);
String message = bufferedReader.readLine();
System.out.println(message);
if(message != null){
PrintStream printStream = new PrintStream(socket.getOutputStream());
printStream.println("Message receivd!");
}
streamReader.close();
socket.close();
serverSocket.close();
bufferedReader.close();
}
}catch(Exception e){}
// try{
//
// }catch(Exception e){}
}
public static void main(String[]args){
Server s = new Server();
s.run();
}
然后我也得到了TCPClient.java
package client;
import java.net.*;
import java.io.*;
public class TCPClient {
private String serverIP = "localhost";
private int serverPort = 1111;
private int count = 0;
private Thread thread;
public TCPClient() {
this.thread = new Thread(new ConnectAndListenToServer());
// thread.start();
}
public void sendMessage(int count){
this.count = count;
this.thread = new Thread(new ConnectAndListenToServer());
thread.start();
}
private class ConnectAndListenToServer implements Runnable {
Socket socket = null;
public void run() {
BufferedReader bufferedReader = null;
InputStreamReader streamReader = null;
try {
socket = new Socket(serverIP,serverPort);
PrintStream printStream = new PrintStream(socket.getOutputStream());
printStream.println(count);
streamReader = new InputStreamReader(socket.getInputStream());
bufferedReader = new BufferedReader(streamReader);
String message = bufferedReader.readLine();
if(message != null){
System.out.println(message);
}
}catch(Exception e){}
try{
socket.close();
bufferedReader.close();
streamReader.close();
}catch(Exception ee){}
}
}
我怎样才能将服务器上已收到的消息转发给另一个客户端?
最佳答案
How would i be able to forward the messeage already received on the server to another client?
我已经在相同的上下文中发布了一些示例。
到目前为止你已经做得很好了,要完成它请看看 Client-Server Communication 强>。我已经一步一步地描述了它,只需按照线程查找其他示例即可。
如果您还有任何问题,请告诉我!
关于java - 多客户端服务器 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23000708/