Форум: "Сети";
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];
ВнизДвижок для чата. Найти похожие ветки
← →
Степа (2001-11-25 20:35) [0]Чем лучше воспользоваться. Я сделал через сокеты.
проблема в том, что когда в чате много юзеров, и все сразу чето пишут, эти сообщения сразу идут на сервери там сливаются в одно. Т.е конечно можно программировать разрыв между мессагами но мне уже некогда. Есть какойнить команент, чтобы я отправил сообщение оно прошло и сервак получил сначало Его , обработал, а потом все остальные поставил в очередь.. или мне приедтся все это самому писать?
← →
Polevi (2001-11-26 08:28) [1]К каждому сообщнию при посылке цепляй заголовок, содержащий размер сообщения. На серваке читай заголовок сначала, а потом столько байт, сколько в заголовке указано.
← →
Степа (2001-11-26 18:30) [2]ну я вообще знаю как это сделать.. просто не охото.
А теперь в тему о твеом методе.
МОжет быть так, что сервер отправит одно полное сообщение а потом еще кусочек. отгда получиться что при обработке второго вылезет косяк - это значит надо ждать конца от второго. короче тут система сложная. хотелось бы ченить найти из стандартного
← →
Polevi (2001-11-27 10:50) [3]Для чата можно считать что сообщение целиком приходит - если размер данных в гнезде меньше указанного в заголовке можно просто отрубать такого клиента - то есть таким образом будет ограничение на объем посылаемого текста в 8 кбайт
← →
Степа (2001-11-27 13:18) [4]так.. вот смотри.
есть порт, к нему сокет
одновременно в этот порт (на сервер поступают):
1) все простые сообщения (18 человек ведут дискуссию)
2) системные сообщения (кто кого выбросил, запросы на обновления, рассылка листов и все такое)
я незнаю. думаешь 8кб хватит на все на это??? + еще загруженность канала
← →
Digitman (2001-11-27 13:44) [5]>Степа
Проще всего использовать UDP-гнезда (message oriented). При их использовании каждое отдельное сообщение будет вызывать отдельное событие на сервере.
При использовании же stream oriented - гнезд передающая сторона должна предварять свое сообщение префиксом размера сообщения, что бы сервер мог читать из вх.потока ровно столько данных, сколько соответствует размеру очередного сообщения в потоке
← →
Polevi (2001-11-27 15:20) [6]2Степа
Ты меня не понял - ограничение будет на размер ОДНОГО сообщения, а не сумме всех сообщений в гнезде
← →
panov (2001-11-27 15:54) [7]>Степа (25.11.01 20:35)
Честно говоря, проблема непонятна.
Каждого клиента нужно обрабатывать по отдельности - вот и все.
Разделитель между сообщениями 0d0a.
Пока строка не закончена - сообщение не рассылается клиентам.
← →
Vitamin (2001-11-27 16:05) [8]>Степа
Вопрос на вопрос...
А как обстаят у тебя дела с пересылкой файлов?<BR>
У меня свой проткл. (названия ещё не придумал)<BR>
[идент. протокола - 5 байт] [4 байта тип данных(файл/текст/...)] [данные] [конец потока - 2 байта].
<BR>
и все - есть физ. начало и конец пакета собственного протокола.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c