Сетевое программирование (Подскажите пожалуйста)

Модератор: Модераторы разделов

agros
Сообщения: 5

Сетевое программирование

Сообщение agros »

В каких случаях в буфере приема сервера (проверяю netstat'ом) может оказаться на один байт больше, чем я отправляю (send) клиентом.
Если это моя ошибка, то она в программе-сервере или в программе-клиенте?
Спасибо сказали:
un-defined
Сообщения: 145
ОС: Kubuntu, Gentoo

Re: Сетевое программирование

Сообщение un-defined »

завершающий '\0' нигде по дороге не мог прилепиться?
Don`t try - just do or do not ©Master Joda
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: Сетевое программирование

Сообщение Portnov »

Насколько я помню, при чтении из сокета указывается кол-во байт (размер буфера). Может, просто не то указываете?
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
agros
Сообщения: 5

Re: Сетевое программирование

Сообщение agros »

un-defined писал(а):
17.04.2008 12:24
завершающий '\0' нигде по дороге не мог прилепиться?

нет, потому что в send'е я же указываю определенное количество байт
Спасибо сказали:
un-defined
Сообщения: 145
ОС: Kubuntu, Gentoo

Re: Сетевое программирование

Сообщение un-defined »

agros писал(а):
17.04.2008 13:57
un-defined писал(а):
17.04.2008 12:24
завершающий '\0' нигде по дороге не мог прилепиться?

нет, потому что в send'е я же указываю определенное количество байт


А recv возвращает какой размер принятых данных - такой же, как отправленных, или тоже на единицу больше?
Don`t try - just do or do not ©Master Joda
Спасибо сказали:
agros
Сообщения: 5

Re: Сетевое программирование

Сообщение agros »

Portnov писал(а):
17.04.2008 12:55
Насколько я помню, при чтении из сокета указывается кол-во байт (размер буфера). Может, просто не то указываете?

мой сервер принимает пакет, в котором есть заголовок - длина пакета (в зависимости от этого принимает столько-то байт).
Отсылаю пакет размером напр 24 байта, принимаю 24 байта, но в буфере приема остается один байт, взявшийся не весть откуда, из-за этого сервер начинает неправильно работать
Спасибо сказали:
agros
Сообщения: 5

Re: Сетевое программирование

Сообщение agros »

Разобрался, просто после send'a клиент сразу закрывался, а при закрытии он отправляет служебный байт
Спасибо сказали: