LINUX.ORG.RU

sendto No such file or directory

 


0

2

Есть такой вот отрезок кода

bytes_send=sendto(sock, &sms_length, sizeof(size_t), 0, &srvr_name,strlen(srvr_name.sa_data) + sizeof(srvr_name.sa_family));
  if(bytes_send < sizeof(size_t)){
    perror("Cannot write data to socket");
    return 1;
  }
  printf("%d bytes send\n", bytes_send);
  
  bytes_send=sendto(sock,argv[1],sms_length, 0, &srvr_name,strlen(srvr_name.sa_data) + sizeof(srvr_name.sa_family));
  printf("%d bytes send\n", bytes_send);
  if(bytes_send == -1){
    perror("Cannot write data to socket");
    return 1;
  }
Фишка в том, что первая sendto срабатывает на ура, байты уходят в сокет вполне успешно. А вот второй sendto заканчивается
Cannot write data to socket:No such file or directory.
На момент завершения работы программы файл сокета существует. Права тоже позволяют запись. На другой стороне между двумя симметричными recvfrom никаких операций над файлом не производится.

★★★

вот объясни мне, барану, зачем в операции send указывать адрес, если ты указываешь дескриптор сокета, т.е. ты уже открыл сокет по этому адресу?

Чем функция sendto от send отличается?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

А в общих случаях и send нафиг не нужен (если ты флаги не передаешь) — тупо write вызывай.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Вот что будет, если адрес не указать

-1 bytes send
-1 bytes send
Cannot write data to socket: Transport endpoint is not connected

LIKAN ★★★
() автор топика
Ответ на: комментарий от LIKAN

Правильно. Ведь ты не сделал connect. А, дошло до меня теперь, нафига ты пользуешься этой функцией!

Кстати, показал бы ты код, которым принимающий сокет открываешь. Может у тебя там косяк?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

connect нужен для потоковых сокетов, а я хочу дейтаграммные. Тут товарищ fopen кажется оочень мудрые вещи говорит, я даже кажется в прошлой жизни сталкивался с тем что размер поля маловат.

LIKAN ★★★
() автор топика
Ответ на: комментарий от Eddy_Em

Сделал-сделал. Уже все работает, благодаря телепатическим способностям товарища fopen.

LIKAN ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.