2012-03-16 2 views
0

Как серверная программа может прерывать клиентскую программу? Клиент и сервер находятся на разных компьютерах. сервер хочет отправлять файл всем клиентам при каждом изменении файла. Может ли сервер отправлять сигнал клиенту?как сервер может прервать клиентскую программу?

ответ

0

Хотя ваш вопрос не очень ясен в требованиях, но грубо вы можете следовать этому подходу, что все клиенты должны прослушивать какой-то порт для новых файлов, и всякий раз, когда у сервера есть новый файл, он может отправлять на этот порт. Предпочтительно клиент должен иметь многопоточную архитектуру, чтобы клиент слушал новый файл в отдельном потоке.

0

Ваш вопрос слишком широк. Вы даже не говорите, какие технологии вас интересуют (например, Microsoft или Unix).

В целом, клиенты должны задать сервер для получения уведомления. Таким образом, служба может знать, кто является клиентами, и может определить, разрешено ли им получать уведомления. Затем клиенты прослушивают порт, который сервер знает для отправки, и сервер может отправить им уведомление. Возможно, запрос от клиента сообщает серверу, какой порт для отправки.

0

Имеет ли клиент постоянное соединение с сервером или только соединение установлено только в случае передачи данных? В последнем вам нужно настроить что-то вроде описанного Разы. Но в случае постоянного соединения вы можете настроить какой-то метод мультиплексирования на соединение клиент-сервер. Например, что-то вроде:

S:0[DATA] 
C:0[DATA] 
S:1[GotFile] 
C:1[GimmeFile] * 
S:0[DATA] 
S:1[File] * 
C:0[DATA] 
C:1[Thanks] * 
S:0[DATA] 

Одна последняя вещь, вы можете настроить учетную широковещательный или групповой раствор, в котором вы отправляете файл каждому клиенту слушать. Однако сделать это безопасно таким образом, чтобы файл был зашифрован сервером и расшифрован клиентом. Кроме того, вы должны обеспечить целостность файла.

Смежные вопросы