1
백그라운드에서 실행중인 서버와 서버의 데이터를 표시해야하는 프로그램이 있습니다. 어떻게 든 내 프로그램에서 서버에서 메서드를 시작하고 싶습니다. 그래서 서버는 보낸 사람이어야하지만 어떻게해야합니까?Apache Thrift 서버를 클라이언트로 사용합니다.
백그라운드에서 실행중인 서버와 서버의 데이터를 표시해야하는 프로그램이 있습니다. 어떻게 든 내 프로그램에서 서버에서 메서드를 시작하고 싶습니다. 그래서 서버는 보낸 사람이어야하지만 어떻게해야합니까?Apache Thrift 서버를 클라이언트로 사용합니다.
서버가 클라이언트가 될 수없는 이유는 없습니다. 양측의 인터페이스를 구현하면 충분합니다.
중요한 것은 교착 상태입니다. 서버의 응답을 기다리고있는 단일 스레드 프로그램이있는 경우 서버가 보내는 요청을 처리하지 않으므로 서버가 멈추고 프로그램에 답장을 보내십시오.
다른 스레드에서 서버 구현을 시작하고 클라이언트 스레드에서 차단하지 못하게하면이 문제를 해결할 수 있습니다.
응답을 보내기 전에 서버가 요청을 되돌려 보내는 것을 피하는 것이 더 좋지만 계단식 요청 (더 특수화 된 서버로의 요청 전달)은 문제가되지 않아야합니다.