Java 응용 프로그램이 소켓 서버에 메시지 (멀티 스레드)를 보내야합니다. 응용 프로그램은 약 100-200 개의 메시지를 초당 보낼 수 있습니다.Java 소켓 클라이언트 패턴
이 작업을 수행하는 데 더 효과적인 방법을 알고 싶습니다.
- 단일 클라이언트 소켓을 열고이 소켓 하나를 통해 모든 스레드의 메시지를 보냅니다. 단점 : 연결 실패시 재 연결 논리를 처리해야하며 재 연결이 진행 중일 때 많은 메시지가 손실 될 수 있습니다. 스레드 안전, 차단 ??
- 각 스레드에 대한 새 클라이언트 소켓 연결을 만들고 보낸 후 닫습니다. 단점 : 소켓을 닫더라도 포트는 TIME_WAIT 시간까지 대기합니다.
어느 것이 더 실용적인 접근법입니까?
그러나 OS가이 권한을 사용합니까? 고정 된 포트 번호 (예 : 65000)를 가지고 있으며이 풀의 포트를 다시 사용합니다. Y는 마이크로 레벨에서 같은 것을 구현해야합니까? – Dunxton
OS 오픈 뉴스 소켓을 가지고있는 것이 현명하므로 기존의 것을 계속 사용하고 재사용하는 것이 가장 좋습니다 (새 Socked 열기는 서버와 Hanshaking을 의미 함) –