프로필 사진
깽쟈
bolt icon506·4년 이상·
876
·수정됨
공유

소켓 열어놓은 시스템을 어떻게 찾아야 할까요?

안녕하세요, 취미로 프로그래밍 하는 사람입니다.


저는 다음과 같은 시스템을 구현하고자 하는데요.


A 시스템에서 BOT 프로그램을 실행하면 해당 BOT은 소켓을 열어놓고 대기상태가 됩니다.

B 시스템에서도 BOT 프로그램을 실행하고 대기상태가 됩니다.

그렇게 n개의 시스템에서 BOT 프로그램을 실행하고 대기상태가 됩니다.


사용자가 HANDLER 프로그램을 실행합니다.

특정 태스크를 수행하는 명령어를 HANDLER에 내립니다.

HANDLER는 네트워크 영역 안에 있는 BOT을 찾아서 대기중인 BOT에 해당 태스크를 수행할 수 있도록 명령을 내립니다.

대기중인 BOT 중 하나가 특정 태스크를 수행하고 결과를 HANDLER에 통보하여 줍니다.


여기서 저의 고민은 대기중인 BOT을 어떻게 파악하느냐 입니다.

다음과 같이 고민해봤는데요,


1. BOT이 실행하면서 DB에 자신의 IP와 PORT를 저장한다. BOT이 종료하면 DB에 해당 데이터를 삭제한다. 이후 HANDLER는 DB 안의 내용으로 BOT을 파악한다.

2. UDP를 이용하여 네트워크 영역의 모든 IP를 돌며 지정한 포트로 뭔가를 쏴 BOT의 존재여부와 상태를 파악한다.


사용언어는 파이썬입니다. 참고할만한 사이트나 조언 남겨주시면 감사하겠습니다.

0
cat-footer