Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.02.18;
Скачать: CL | DM;

Вниз

Движок для чата.   Найти похожие ветки 

 
Степа   (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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
3-57038
Swap
2002-01-23 08:33
2002.02.18
Вопрос по RxQuery


14-57190
fliz
2001-12-27 16:50
2002.02.18
Путин ONLINE


4-57252
DIMA S
2001-12-19 02:26
2002.02.18
WIN API


1-57115
Basaev
2002-02-03 03:51
2002.02.18
Как закрыт другую програму из своей


4-57251
Digitman
2001-11-05 13:30
2002.02.18
Какой ресурс в NT жестко ассоциирован с хэндлом со значением 4 ?