채팅프로그램을 만들었는데 여기다가 파일 전송 같은걸 추가하고 싶거든
근데 채팅에 쓰는 소켓에다가 파일을 전송해버리면 채팅이랑 파일이 구분이 안 되잖아
그럼 이제 어케 해야되는거임? 클라이언트가 새로운 소켓으로 같은 서버포트에 connect를 또 요청할 수 있음?
만약 이게 가능하다면 내가 생각한 방식은 일단
0. 클라이언트 실행
1. 서버가 accept를 받음
2. 서비스에 들어가기 전 어떠한 종류의 서비스를 요청하는지 클라이언트와 대화 (단순 플래그 교환)
3. 서비스 시작 (채팅)
4. 클라이언트 사용자가 파일전송 커맨드 입력
5. 클라이언트는 새로운 소켓을 만들고 같은 포트에 connect 요청
6. 1, 2번 반복 (이제 두대의 컴퓨터 간에 연결된 소켓이 2개)
7. 서비스 시작 (파일전송)
이거 됨?
파일 전용 소켓을 열던가 프로토콜로 구분하던가
소켓2개 여는 대신... 를 해라 - dc App