import java.io.*;
import java.net.*;
import java.util.logging.Handler;
public class Server extends Thread{
 static ServerSocket serverSocket = null;
 static Socket socket = null;
 
 private static BufferedReader reader, networkReader;
 private static BufferedWriter networkWriter;
 static String str, send;
 
 public void run(){
  connect();
 }
 private static Thread sendMessage = new Thread("first"){
  public void run(){
   System.out.println("sendMessage");
   PrintWriter out1 = new PrintWriter(networkWriter, true);
   while(true){
   try{
    str = networkReader.readLine();
    if(!str.equals(null)){
     System.out.println("Thread1 start");
     System.out.println("Output : "+str);
     out1.println(str);
     System.out.println("Thread1 start2");
     out1.flush();
    }
    }catch(Exception e){}
   }
  }
 };
 private static Thread checkMessage = new Thread("second"){
  public void run(){
   System.out.println("checkMessage");
   PrintWriter out2 = new PrintWriter(networkWriter, true);
   while(true){
   try{
    str = networkReader.readLine();
    if(!str.equals(null)){
     System.out.println("Thread2 start");
     System.out.println("Input : "+str);
     out2.println(str);
     System.out.println("Thread2 start2");
     out2.flush();
    }
    }catch(Exception e){}
   }
  }
 };
 public static void connect(){
  try{
   serverSocket = new ServerSocket(9001);
   int num=0;
   while(num !=2){
    System.out.println("소켓 생성중...");
    socket = serverSocket.accept();
    InetAddress clientHost = socket.getInetAddress();
    int clientport = socket.getPort();
    System.out.println("연결된 클라이언트 : \n ip : "+clientHost+", 포트 : "+clientport);
    networkReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    networkWriter = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
    reader = new BufferedReader(new InputStreamReader(System.in));
    System.out.println("완료");
    Object bj = socket;
    System.out.println(bj);
    if(num==0)
    sendMessage.start();
    else
    checkMessage.start();
   }
  }catch(Exception e){}
 }
 public static void main(String[] args) {
  Thread first = new Server();
  first.start();
 }
}

위와 같이 자바를 이용해 만든 소켓 서버에 두개의 단말기로 클라이언트 어플을 만들어 접속하는 것 까지는 됩니다.

 

근데 문제는 순차적으로 A와 B가 접속을 하면 B에서 A와 서버로는 전송이 되는데 A단말에서는 전송이 되지 않습니다.

 

A와 B가 서버를 거쳐 통신을 하려면 어디를 수정해야 할까요ㅜ

 

채팅서버를 응용하여 만든 것이지만 실제적으로는 어떤 명령어들을 서로 전송하려고 만든것입니다.ㅜ