클라이언트, 서버 기반 채팅을 쓰고 있습니다. 서버는 중앙 구성 요소이며 모든 들어오는 메시지와 나가는 메시지를 처리합니다. 클라이언트는 채팅 사용자입니다. 그들은 프레임에서 채팅을보고 채팅 메시지를 쓸 수도 있습니다. 이 메시지는 서버로 전송됩니다. 서버는 차례로 모든 클라이언트를 업데이트합니다.동기화 : 클라이언트, 서버 채팅
제 문제는 클라이언트 동기화입니다. 서버가 멀티 스레드이기 때문에 두 메시지를 클라이언트에서 수신 할 수 있고 (메시지 형태로) 업데이트를 보내야합니다. 각 클라이언트는 자체 스레드에서 업데이트되기 때문에 모든 클라이언트가 동일한 메시지를 수신 할 것이라는 보장은 없습니다. 우리에게는 짜증나는 문제가 있습니다.
어떻게 해결할 수 있습니까?
나는 타임 스탬프와 버퍼를 망쳤습니다. 그러나 이것은 좋은 해결책이 아닙니다. 왜냐하면 타임 스탬프를 할당 한 후 즉시 메시지가 버퍼에 저장된다는 보장이 없기 때문입니다.
나는 클라이언트를 모른다 고 추가 할 것이다. 즉, 서버의 각 스레드에 하나의 열린 연결 만 있습니다. 나는 모든 클라이언트를 추적 할 클라이언트 배열을 가지고 있지 않습니다.