지금껏 Local 상태로만 장비 제어 프로그램을 해 왔었는데 새로 장비를 개발 하면서 TCP/IP 를 통한 원격 제어 및 모니터링이 가능하게 해 달라는 요청을 받았습니다.
일단 IndyTCPServer 를 이용해서 개발을 하려고 합니다. 통신 프로토콜은 Json 을 사용합니다.
TCP/IP 원격 제어를 해 본적이 없어서 몇가지 의문점이 있어서 질문 드립니다.
1. client 가 2군데 이상에서 연결이 되었을 경우 이들을 구분할 수 있나요?
예) master 권한과 단순 모니터링 참가자 ( 실제 제어 권한과 단순 모니터링 권한의 구분)
2. IndyTCPServer 를 잠시 테스트 했을 때 보니 보통 client에서 메시지를 보내면 그 메시지를 받고 OnExecute 에서 이벤트 처리로 응답을 보내게 되어 있던데 Client 에서 메시지를 받지 않는 상황에서 시스템 자체에서 현재 연결되어 있는 Client 들에게 특정 메시지를 보낼 수 있는지요?
3. (2) 번 문항과 같은 의미 일수 있는데 서버는 클라이언트의 요청에 의해서만 응답을 하는 것인가요?
4. OnExecute 이벤트에서 어떤 클라이언트의 요청에 응답을 하게 되면 해당 요청을 한 특정 클라이언트에게만 응답이 가는가요?
아니면 연결된 모든 클라이언트에게 다 응답이 가는가요?
5. 서버가 클라이언트의 메시지에 응답을 하는동안 현재 진행중인 제어에 부담이 되지는 않는지요??
IndyTCPServer 가 자체적으로 쓰레드를 이용한다고 하는 것 같은데 실제 코딩은 Main 화면에서 메시지 이벤트 처리로 하고 있는듯 해서요..
시대가 변하니 장비제어도 자꾸 새로운 기술들을 접목해 달라고 요구하는데 나이는 먹어서 뭔가 새롭게 한다는게 참 부담스럽네요..
그리고 indy 와 TJSONObject 관련한 자료는 죄다 델파이 뿐이라 파스칼 잘 모르는 제 입장에서는 하나하나 뜻어 분석하는게 얼렵네요.
|