Ответ: Пример сервера на PureBasic
Автору респект:super: не каждый день такое выкладывают. Давно хотел разобраться в серверной части, буду учиться на примере твоего кода. По коду ничего сказать не могу, ибо ничерта не смыслю в серверах, но хотел бы сказать отдельное спасибо за качественные комменты, буду разбираться на досуге:)
|
Ответ: Пример сервера на PureBasic
А как соединяться? Он работает только для своего компа, а с другим компом даже через hamachi не удалось соединиться :dontknow:
|
Ответ: Пример сервера на PureBasic
Возможно порт закрыт? Ограничений то нет никаких, в клиенте просто вместо localhost нужно указать ip-адрес, где сервер крутится.
|
Ответ: Пример сервера на PureBasic
Спасибо! Работает :)
|
Ответ: Пример сервера на PureBasic
В коде есть переменные tmpData и tmpSpecial. Что такое tmp? А то я уже начинаю путаться.
|
Ответ: Пример сервера на PureBasic
tmp - temp, временная переменная:) я просто их так обозвал.
Сразу после считывания данных из очереди (Queue), элемент списка очереди удаляется (чтобы не держать mutex заблокированным), а данные из него сохраняются как раз во временных переменных и далее обрабатываются. |
Ответ: Пример сервера на PureBasic
Обязательно ли использовать базу данных, или можно записывать в простой текстовый файл?
|
Ответ: Пример сервера на PureBasic
Конечно можно - база данных нужна для более быстрого поиска, выборки по определенным полям и т.п., в общем оптимальней...
|
Ответ: Пример сервера на PureBasic
Интересно, Delay(10) в данном коде значительно ускоряет программу. С чем это связано?
Код:
If CreateNetworkServer(Ip,Port) |
Ответ: Пример сервера на PureBasic
В потенциально бесконечных циклах, без delay произойдёт явление похожее на зависание, когда программа будет потреблять 100% процессорных ресурсов. В результате система может неиметь достаточных ресурсов чтобы выполнить свою часть работы, результатов работы которйо программа и ожидает таким способом.
Посути команда Delay(10) даёт немного времени системе для выполнения своих дел. Хотя я бы в таком цикле поставил время отдаваемое системе побольше, например 100. |
Ответ: Пример сервера на PureBasic
Кроме того, если получение данных от сетевого интерфейса идёт в другом потоке, то такая спин-блокировка (отсутствие delay на одноядерном камне) может привести к ситуации дефицита ресурсов процессора для задачи получения данных, что в итоге отобразится на основном потоке, который с этими данными и работает (по сути, Джокер это и написал).
|
Ответ: Пример сервера на PureBasic
В коде есть несколько потенциальных "глючных" мест.
Цитата:
В справке ясно написано. Цитата:
Цитата:
|
Ответ: Пример сервера на PureBasic
Спасибо, учту :)
|
Ответ: Пример сервера на PureBasic
Каким образом мы используем ASCII коды 31 и 10, и как они оказываются в пакетах, принятых от клиента?
|
Часовой пояс GMT +4, время: 01:51. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot