Это мой код. Пожалуйста, скажите мне второй метод (ReceiveMSG), почему бы не ошибка?Thread and Socket в Java
более ясно, после успеха client1 подключен и client2 подключен тоже,
почему этот код не сделать так? Потому что на самом деле этот класс имеет два объекта threadReceive
бежит, почему этот код не ошибка ?!
P.S. Извините, мой английский очень плохой ... это мой первый пост. Английская статья = 口 = ||
public class Server{
String msgIN = null, msgOUT = "This is Server's respond.";
public Server(ServerSocket server){
System.out.println("Server created.\nWaiting for client to connect...");
while(!server.isClosed()){
try {
Socket client = server.accept();
System.out.println("Connect Prot:" + client.getPort());
ReceiveMSG(client);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
private void ReceiveMSG(final Socket socket) {
Thread threadReceive = new Thread(new Runnable() {
public void run() {
try {
while(socket.isConnected()){
DataInputStream dataIN = new DataInputStream(socket.getInputStream());
msgIN = dataIN.readUTF();
if(!msgIN.isEmpty())RespondMSG(socket);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
threadReceive.start();
}
private void RespondMSG(final Socket socket){
try {
DataOutputStream dataOUT = new DataOutputStream(socket.getOutputStream());
dataOUT.writeUTF(msgOUT);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception{
ServerSocket server = new ServerSocket(5678);
new Server(server);
}
}
Большое спасибо. Это очень полезно для меня !!!!!!!!! – Zillion