음.. 쓰레드로 클라이언트를 받거나 하시는게 아니신가보네요.
일반적인 순차적 프로그래밍으로 작성하셔서 그런거 같으네요.
간단한 원리는 클라이언트가 들어오면 새로운 작업 공간이 생긴다고 생각하시면 됩니다.
쓰레드에서 계속 리슨을 하고 있고 (혹은 콜백)
새로운 접속(클라이언트)가 들어오면 새로운 작업 환경을 만들어 주신다고 생각하세요.
listen() 이 참이면 new TcpClient를 생성하는 식..
이해 안가시면 만드신 코드를 한번 올려주시면 다른 분들이 지원해주실거에요