Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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.003 c
4-57259
Art
2001-12-20 20:10
2002.02.18
Вопрос по Api??


3-56998
навичек
2002-01-24 03:28
2002.02.18
Чегото непонятное с TTable (или со мной:( )


14-57218
Knyaz17
2001-12-13 10:38
2002.02.18
Чем отличается MS-SQL 7.0 и MS-SQL 2000?


14-57209
vector
2001-12-29 12:23
2002.02.18
Не могу нормально посмотреть форумы Delphi


3-57017
zolotov
2002-01-23 08:07
2002.02.18
BLOB поля надо записать любой формат рисунка





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский