종류가 다른 2가지의 클라이언트가 있습니다. 클라이언트가 서버로 연결요청을 하면 스레드를 만들어 스레드와 클라이언트가 통신하도록 서버를 만들고 싶습니다. 연결요청이 들어올 때 클라이언트의 종류를 구분할 수 없는걸로 아는데 그럼 연결이 된 후엔 어떻게 클라이언트마다 동작을 달리할 수 있는지 알고 싶습니다.
그러게요... 생각해보니.. "연결요청이 들어올 때" 클라이언트의 종류를 구분할 수 없는 것 같네요.
그것까지는 제가 잘 모르겠고요.
요청이 들어온 후 에는 알 수 있습니다.
클라이언트A가 접속해서 type 이 a 라는 패킷 보내면 서버에서는 a type 이라는 것을 알 수 있습니다.
클라이언트B가 접속해서 type 이 b 라는 패킷 보내면 서버에서는 b type 이라는 것을 알 수 있습니다.
그런 프로토콜을 만드시면 될 것 같네요.
그리고 또 다른 방법으로는, 하나의 daemon 프로세스에서 여러 개의 서버 모듈을 동시에 돌리는 방법이 있습니다. https://nimf-i18n.gitlab.io/architecture/
nimf 의 예를 들면, 세 가지 종류의 클라이언트에 대해 각각 세 개의 서버(서비스) 모듈이 대응하고 있습니다.
음. 여러가지 방법이 있을 것 같은데요
음. 여러가지 방법이 있을 것 같은데요
1) 가장 간단한 방법일 수 있는데 서버가 2개 포트를 여는 겁니다. 2가지 클라이언트가 각각 접속하게 하는거죠.
2) 클라이언트가 서버에 접속한 후 바로 1바이트 등을 보내서 자기가 누구인지 알려 주는 겁니다.
다른 방법은 다른 분이...
그러게요... 생각해보니.. "연결요청이 들어올 때"
그러게요... 생각해보니.. "연결요청이 들어올 때" 클라이언트의 종류를 구분할 수 없는 것 같네요.
그것까지는 제가 잘 모르겠고요.
요청이 들어온 후 에는 알 수 있습니다.
클라이언트A가 접속해서 type 이 a 라는 패킷 보내면 서버에서는 a type 이라는 것을 알 수 있습니다.
클라이언트B가 접속해서 type 이 b 라는 패킷 보내면 서버에서는 b type 이라는 것을 알 수 있습니다.
그런 프로토콜을 만드시면 될 것 같네요.
그리고 또 다른 방법으로는, 하나의 daemon 프로세스에서 여러 개의 서버 모듈을 동시에 돌리는 방법이 있습니다.
https://nimf-i18n.gitlab.io/architecture/
nimf 의 예를 들면, 세 가지 종류의 클라이언트에 대해 각각 세 개의 서버(서비스) 모듈이 대응하고 있습니다.
댓글 달기