주어진 환경에서 다른 시스템의 TCP 데이터 그램을 허용하는 서버 앱을 프로그래밍해야합니다. 이러한 메시지는 메시지 유형의 유한 목록 일 수 있습니다. 예를 들어 새 인벤토리 (새 품목 레코드), 인벤토리 위치 변경 (인벤토리가 현재 위치 X), 이전 요청 (인벤토리 ID XYZ를 위치 X에서 위치 Y로 이동하십시오)과 같은 몇 가지 예가 있습니다.TCP 소켓 (서버) 디자인
제 질문은 데이터 그램에 어떤 유형의 식별자가 있어도 어떤 유형의 메시지인지 명시 할 필요가 없도록 인바운드 메시지 유형마다 소켓 (포트 번호)을 설정하는 것이 좋습니다. 내가 처리 할 수 있도록 메시지의 형식을 알려주시겠습니까?
.NET에서 Sever를 작성하고 있지만 TCP 메시지의 보낸 사람은 기존의 비.NET 시스템입니다. 내 계획은 추가 처리를 위해 메시지를 MSMQ에 저장하는 비동기 서버를 설정하는 것입니다. (http://msdn.microsoft.com/en-us/library/fx6588te(v=vs.110).aspx)
이렇게하면 매우 이상한 * 방법 일 것입니다. 대부분의 클라이언트가 하나 이상의 메시지 유형을 보내야한다고 가정 할 때 소켓 오버 헤드가 더 많이 필요합니다. 그렇게하지 않겠습니다. –
이렇게하면됩니다. 라우터에서 UDP 패킷의 경로를 변경해야한다고 가정합니다. 라우터의 비밀스럽고 건전한 명령 인터페이스와 얼마나 오랫동안 상호 작용하고 싶습니까? 하나의 포트가 충분합니다 .. –
@Martin eugh - 메시지를 추가 할 때마다 방화벽 변경 : 내 시스템 관리자는 혈액 지불을 요구할 것입니다. –