개발 방향에는 다양한 방법이 있습니다.
가장 심플한 방법으로는 Socket 연결시 Recevier와 Sender Thread를 각각 생성해서 유지 하는 방법이 있습니다.
이때 생성된 Thread는 demon 으로 설정해야하고 Receiver 에서 받은 데이터를 바로 UI에서 보여 주려고 한다면
Android 상에서는 Handler를 이용해서 UI 쪽으로 보내는게 좋습니다.
또한 Sender 에서는 BlockingQueue를 이용해서 Message를 보내면 좀 수월 할 것입니다.
각각 Thread 들의 동작에 대해서 result를 받고 받은 result에 따라서 추가 동작을 하도록 구현 하는 편이 좋습니다.
추가로 제 경험상 핸드폰에서 server를 돌리면 1대 1채팅은 그렇다고 치더라도 1대 다수는 무리 인것으로 알고 있습니다.
Server code를 멀티플렉서로 구현하지 않으면 하나의 client가 연결 될때마다 Thread가 적어도 2개가 생겨야 합니다.
여튼 급한대로 구현을 하자면 Thread 2개로 처리를 할 수 있습니다만, 궁극적으로는 멀티플렉서 server를 추천합니다.