Ребята, сейчас страница находится на рестоврации, потому что я пешу диплом
Удалены статьи по хтмл, вб, графике, и системному програмированию (вкл. исходный код моей ОС на паскале)
Теперь я буду писать статьи по клиент-серверному зваимодействею.
Принципы создания эффективного клиент-серверного взаимодействия.
Наверняка, каждому из вас удавалось создать сервер, способный распознавать подключение клиента и получать от него сообщения. Но иногда может возникнуть ситуация, когда нужно, чтобы к серверу подключилось 2 и более клиента. Для этого нужно реализовать следующие действия:
1. Как только сервер распознал подключение нового клиента, создается другой сервер. Сокет созданного сервера будет указывать на тот же хост, но порт указываем так:
[номер порта] := random( [максимально возможное количество клиентов] );
2. Далее передаем номер порта нового сервера клиенту.
3. Клиент закрывает соединение с нынешним сервером и подключается к новому серверу.
То же самое происходит при подключении последующих клиентов.
4. Создаем в какой-либо директории файл log.txt.
5. При получении сообщения на любом из созданных серверов происходит перезапись данного текстового файла, при этом добавляется полученное сообщение от клиента в конец файла.
6. Для отслеживания новых сообщений от других клиентов (которые подключены каждый к своему серверу), каждые N секунд происходит чтение файла log.txt в строковый массив и сравнивается с массивом, полученным в предыдущий момент чтения файла log.txt (N вы можете варьировать в зависимости от желаемого быстродействия и ресурсов серверного оборудования).
Ниже привожу часть исходного кода:
i:= 1;
AssignFile( serverLog, ''log.txt'' );
Reset( serverLog );
While not Eof( serverLog ) do
begin
Readln( serverLog, newLog[ i ] );
Inc( i );
end;
CloseFile( serverLog );
eq:= True;
for j:= 1 to i do
if newLog[ j ] <> oldLog[ j ] then eq:= False;
if not eq then // Значит в файле log.txt появилось что-то новое!!!!!!!
на ГЛАВНУЮ!
Инфа о программере!
ЖЖ КулКоляна!
Нопишите крутому кодеру писльмо!
|