멀티스레드 서버를 만들고 싶은데 클라이언트가 2 종류가 있습니다. 안드로이드 기반의 클라이언트이고요.
하나는 한 번 연결되면 끊어지지 않는 유일한 클라이언트이고, 다른 한 종류는 일시적으로 연결 후 서비스를 이용하고 연결을 해제합니다.
서버 입장에서 연결 요청이 들어오면 그에 따른 스레드를 생성해줄텐데 두 스레드를 구분할 수 있는 방법을 모르겠습니다. 어떻게 두 클라이언트의 종류를 나눌 수 있을까요?
서버와 클라이언트간 통신시 패킷을 설계하여 데이터 송/수신시 사용하실텐데요. 제 생각으로 패킷 헤더에 발신자를 구분할 수 있는 필드를 추가하셔서, 서버에서 패킷 수신시 해당 헤더의 발신자 정보를 보고, 적절한 스레드를 생성해주면 될 것으로 판단합니다.
추가적으로 만약 발신자의 IP가 고정되어 있는 경우 해당 패킷의 발신 IP를 확인하여 구분할 수도 있을 것 같습니다. 참고 : https://ycswarm.tistory.com/22
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
클라이언트에서 패킷에 자신이 누구인지? 표시해서 주면 어떨까요?
서버와 클라이언트간 통신시 패킷을 설계하여 데이터 송/수신시 사용하실텐데요.
제 생각으로 패킷 헤더에 발신자를 구분할 수 있는 필드를 추가하셔서,
서버에서 패킷 수신시 해당 헤더의 발신자 정보를 보고, 적절한 스레드를 생성해주면
될 것으로 판단합니다.
추가적으로 만약 발신자의 IP가 고정되어 있는 경우 해당 패킷의 발신 IP를 확인하여
구분할 수도 있을 것 같습니다.
참고 : https://ycswarm.tistory.com/22
댓글 달기