이것은 내 코드입니다. 제 2의 방법 (ReceiveMSG)을 알려주십시오. 왜 오류가 없습니까? 사실이 클래스는자바 스레드 및 소켓
가 실행 threadReceive의 두 가지 목적을 가지고 있기 때문에
왜이 코드는? 잘못하게하지 CLIENT1 연결 CLIENT2도 연결의 성공 이후 더 명확하게, 왜이 코드를 오류가 아닙니다!
P. 미안해. 내 영어가 아주 가난하다..이게 내 첫 글. 영어 =
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