문제

내가 있는 클라이언트/서버(지방 클라이언트와 데이터베이스)프로그램은 델파이로 작성 2006.특정 조건을 충족하는 경우에는 클라이언트,필요에 알리는 다른 모든 클라이언트는 매우 빠르게 합니다.지금까지 이를 사용하여 수행 UDP 브로드캐스트,하지만 이것은 더 이상으로 가능한 클라이언트에서 연결 LAN 외부 및 UDP 방송으로 제한됩니다.

제가 알기로는 인디 라이브러리이지만 정말로 확실하지 않는 구성품을 사용하는 방법과 구조다.내가 있어야 합는 서버 클라이언트가 연결을 받을 것이고 배포하는 메시지...?모든 샘플을 할 수 밖에 없는 나를 시작하는가?

다른 구성 요소 세트 또는 기술이 나는 찾아야에서 대신/니까?

도움이 되었습니까?

해결책

간단한 대답은 표준 프로토콜에서 사용 가능 델파이(및 기타 공구)의 허용하지 않에 대한 통지합니다.동물이 어미가 총을 맞았기 때문에 왔 이 프로젝트에 대한 곳 내가 사용하고 싶었다.그들은 모든 가정 클라이언트 요청의 서버,서버에 응답하고 그것입니다.

한 솔루션이었 RemObjects SDK.이것은 당신에게 알림을 보내는 클라이언트와 알림 수 있습은 모든 데이터를 가지고 있습니다(같은 서버 클라이언트).나는 사용 SuperTCP 연결지만,그것은 너무 다른 사람.그것은 여전히 제안 비누 인터페이스는 클라이언트에 대해 그것을 사용해야 하지만,당신이 있어 모두의 클라이언트와 서버는 그것을 매우 잘 작동합니다.

다른 팁

거기에 몇 가지 정말 쉽지 방법과 이것은 델파이,하지만 나는 확실히 RemObjects SDK 는 실제로 너무 잘 작동한다.

  1. 중앙 서버*TIdTCPServer 듣기*니다.다음 각 클라이언트는 TIdTCPClient 니다.그들은 서버에 연결하고 블록에서 읽 서버를 쓰.일단 서버가 수신하는 통지를 통해 듣고는 소켓 방송 각 기다리고 클라이언트입니다.이것은 거의 즉시 통지 모든 클라이언트입니다.
  2. 중앙 서버 TIdTCPServer 플레이어가 아닌g 니다.다음 각 클라이언트는 TIdTCPClient 니다.그 클라이언트 "ping" 서버에 요청에 대한 업데이트 정기적인 간격으로(사용하여 토큰 세션 상태를 유지하).의 주파수 간격을 결정하는 방법은 빠른 알림이 될 것입니다.할 때 일단 클라이언트 중 하나에 통보하여야 다른 사람,그냥 통합 서버입니다.서버는 다음 사용 메시지 큐 목록을 만들의 모든 활동 세션과 클라이언트가 통지합니다.그런 다음에 각 클라이언트의 연결은 그것에게 그것을 알림과에서 제거합니다.
  3. 유지 세션 테이블 데이터베이스에서 각 클라이언트가 업데이트 정기적으로는 그들이 활성화 세션을,그리고 자신을 제거할 때 그 연결을 끊습니다.당신이 필요 유지 보수 프로세스는 각질제거 세션이 있습니다.다음 메시지 큐 테이블 는 클라이언트을 작성할 수 있습 업데이트하여 한 행위는 각 현재 세션이 있습니다.다음할 수 있는 다른 클라이언트는 정기적으로 ping 는 표시가 있는 경우 보류 중인 모든 알림을 위한 그것의 세션이있는 경우에,그것은 그들을 읽을 수 있습니다,그들에게 행동한 다음 제거합니다.
  4. 어떤 종류의 피어 투 피어 접근 방식이었다는 클라이언트가 서로 알고 있을 통해 데이터베이스에 포함된 정보 및 그 후 그들은 직접 연결을 서로에게 통지하거나 요청에 대한 알림이(에 따라 방화벽 및 NAT 구성).조금 더 복잡,하지만 가능합니다.

분명의 선택은 구현에 따라 달라집니다 당신의 설치하고 필요합니다.튜닝에 필요할 것이 최상의 결과를 달성하기 위해.

필요한 요소를 이 TIdTCPServer (listener)및 TIdTCPClient (sender).모두에서 인디 라이브러리에서 Delphi.

ICS 에서 구성 요소 http://www.overbyte.be 니다.니다.) 호환성을 향상 Indy b.) 엽서 상품 좋은 예 지원합니다.사용 TClientSocket 및 TServerSocket

FirebirdSQL 프로젝트의 개념을 사용하여 알림을 것으로 서버-클라이언트 연결의 보내는 문자열이 포함되어 있는 클라이언트입니다.이를 위해,db 서버에서 사용하는 다른 포트입니다.고 클라이언트가 필요 합 등록 그것은 흥미로운 받는 특정 유형의 알림 API 를 통해 통화합니다.

당신이 사용할 수 있습니다.

패키에 맞게 해야 합니다.서버가 무료로 사용할 준비가 되어 있습니다.당신은 클라이언트가 필요 측면을 연결 밀어/를 보내는 메시지를 얻/풀 알림 메시지

Server: http://www.rabbitmq.com/download.html Google 클라이언트는 자신을 구현하는

환호

당신이 사용할 수 있어야 멀티캐스트 UDP 같은 목적을 위해.유일한 차이 될 것입니다 가입하 멀티캐스트 그룹에서 모든 클라이언트입니다.

http://en.wikipedia.org/wiki/IP_Multicast

http://en.wikipedia.org/wiki/Internet_Group_Management_Protocol

편집: 을 명확히,멀티캐스트 할 수입된 그룹""관련된 멀티캐스트의 ip 주소가 있습니다.모든 패킷을 전송하는 주소에 도달 할 것 모든 클라이언트가 그룹 가입

당신이 볼 수있 weonlydo 십시오 구성요소는 당신을 허용하기 위해 보다 강력한 UDP 구멍 구멍을 뚫고 얻을 포 환경 및거나 정상적인 VPN(로 fornished 네트워크 어댑터)에 연결할 수 있도록 두 PC NAT 뒤에.

내가 사용하는 이제에 대한 우리의 통신 프로그램과 작동이 매우 좋다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top