Internet sockets (оптимальный кусок)

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

Аватара пользователя
AlexRat
Сообщения: 88

Internet sockets

Сообщение AlexRat »

Подскажите, пожалуйста, как решить такую задачку: допустим мне нужно передавать и принимать информацию через сеть. Для этого логично использовать Internet sockets. Но вряд ли разумно передавать одним вызовом функции write сразу несколько мегабайт :) Тоже самое и с чтением. Подскажите, какими порциями оптимально выбирать информацию из сокета и наоборот отправлять через сокет?

Заранее благодарен.
Наверняка ответ очень прост, но я не смог его найти, может не в той стороне искал :)
Мой блог
Ubuntu 7.04
Windows XP SP2
Спасибо сказали:
Аватара пользователя
Alagert
Сообщения: 167

Re: Internet sockets

Сообщение Alagert »

Честно говоря оптимального решения я не знаю, но самый распространенный вариант который я видел 4K.
Born to be ROOT
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Internet sockets

Сообщение elide »

Тоже самое и с чтением.
с чтением не то же самое. читать лучше по готовности данных. и читать столько - сколько есть.
слава роботам!
Спасибо сказали:
Аватара пользователя
AlexRat
Сообщения: 88

Re: Internet sockets

Сообщение AlexRat »

Как проверить наличие данных в сокете я нашел:

Код: Выделить всё

int checkDataInSocket (int sockfd) {
    struct timeval tv;
    fd_set read_fd;
    tv.tv_sec = 0;
    tv.tv_usec = 0;
    FD_ZERO (&read_fd);
    FD_SET (sockfd, &read_fd);
    if (select (sockfd + 1, &read_fd, NULL, NULL, &tv) == -1) {
        return 0;
    }
    if (FD_ISSET(sockfd, &read_fd)) {
        return 1;
    }
    return 0;
}


А как узнать сколько байт ожидает чтения ???
Мой блог
Ubuntu 7.04
Windows XP SP2
Спасибо сказали:
Аватара пользователя
oav
Бывший модератор
Сообщения: 296

Re: Internet sockets

Сообщение oav »

(AlexRat @ Понедельник, 13 Июня 2005, 10:06) писал(а):А как узнать сколько байт ожидает чтения ???


Ну, я думаю ты читай стока, скока у тебя буффер, а read тебе вернет сколько реально прочитано ;))
Спасибо сказали:
Аватара пользователя
AlexRat
Сообщения: 88

Re: Internet sockets

Сообщение AlexRat »

(oav @ Понедельник, 13 Июня 2005, 12:35) писал(а):Ну, я думаю ты читай стока, скока у тебя буффер, а read тебе вернет сколько реально прочитано ;))

Я просто подумал, что есть какой-то способ узнать :)
Мой блог
Ubuntu 7.04
Windows XP SP2
Спасибо сказали:
Аватара пользователя
Jenizix
Сообщения: 53

Re: Internet sockets

Сообщение Jenizix »

А я всегда передаю по 1024 байта и делаю буфер тоже 1024байта... так лече... да и можно скорость пощитать...
Ушел в себя, вернусь не скоро...
________________________________
Slackware 10.1 / FluxBox 0.9.13
Спасибо сказали: