제목에 작성한대로 서버는 리눅스 기반의 c를 기반으로 TCP로 구현했습니다. 그리고 client는 자바로 gui를 구현하여 완성하려고 합니다.
지금 현 상태는 일반 다대다 채팅은 제대로 작동되지만, 파일전송과 귓속말 측면에서 문제가 발생하였습니다.
TCP의 특성상 boundary가 없어서, 클라이언트에서 서버로 write한 정보가 묶여져서 한꺼번에 전송될 수도 있고, 아니면 따로 따로 갈수도 있다는 것을 이제서야(까먹었다가... 어느정도 구현후에) 알게 되었습니다. 서버에서 클라이언트로 보낼때도 마찬가지 입니다.ㅠ
저같은 경우에는 특정한 토큰(예로 $filesend, $onetoone)을 활용하여, 서바가 전달받은 내용에 해당 토큰이 존재하면, 파일전송이나 일대일 채팅을 기능을 따로 수행하도록 했습니다. 그런데도, 경계(boundary)가 없는 TCP의 속성때문에, 원치 않는 정보까지 받아오거나, 한꺼번에 전송되길 바라는 일대일 채팅 내용이 끊겨서 전송되는 등 문제가 발생합니다.