The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"вопрос по сокетам"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"вопрос по сокетам"  
Сообщение от djdxbr on 14-Фев-08, 01:49 
вопрос такой,.. пишу сервер на блокирующих сокетах, для каждого соединения форкаю отдельный процесс при accept'е,.. потом читаю данные recv()... но дело в том что recv() возвращает что она прочитала только 255 байт из сокета, когда я точно знаю что послано было 765 байт...
в чем может быть причина?
Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "вопрос по сокетам"  
Сообщение от from_mars on 14-Фев-08, 03:25 
а если как-нить так попробывать?

while (recv(.., buffer) != 0){
  megabuffer += buffer
}
parse(megabuffer)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "вопрос по сокетам"  
Сообщение от jd2 (ok) on 14-Фев-08, 05:19 
Причина в том (и это описано в мане), что читается столько байт, сколько доступно (принято) на данный момент, вплоть до (но возможно меньше) того количества, которое запрошено. Решается использованием флага MSG_WAITALL (см. примечание к нему) и/или написанием собственной функции-обёртки, которая будет читать, пока не прочитает сколько нужно или соединение не будет разорвано.

В любом случае, чтение манов является хорошей и общепринятой практикой, особенно при использовании вызовов, работу которых Вы не до конца понимаете.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "вопрос по сокетам"  
Сообщение от djdxbr (ok) on 15-Фев-08, 01:04 
спасибо! MSG_WAITALL помог... правда где-то в половине случаев соединение рвется по таймауту, но зато приходят все данные :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру