/*
В следующем коде функция recv всё время возвращает -1,
т.е. происходит ошибка, несмотря на то, что до этого всё
вроде бы произошло нормально, bind,accpet и все дела.
Такая чушь, а не могу понять из-за чего не работает !
*/
#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#include <fcntl.h>
#include <arpa/inet.h>
#include <string.h>
#include <netinet/tcp.h>
int main(int argc, char *argv[])
{
fprintf(stdout,"Initializing...\n");
int sock,len,test;
unsigned char buff[1024];
struct sockaddr_in host;
sock = socket(AF_INET,SOCK_STREAM,0);
host.sin_family = AF_INET;
host.sin_port = htons(31111);
host.sin_addr.s_addr = htonl(INADDR_ANY);
len = sizeof(host);
fprintf(stdout,"Binding...\n");
bind(sock,(struct sockaddr*)&host,sizeof(host));
test = listen(sock,1);
if(test==-1)
fprintf(stdout,"listen(...) returned -1 !\n");
test = accept(sock,(struct sockaddr*)&host,&len);
if(test==-1)
fprintf(stdout,"accept(...) returned -1 !\n");
else
fprintf(stdout,"Some clinet connected...\n");
fprintf(stdout,"waiting for recv...\n");
test = recv(sock,buff,strlen(buff)+1,0);
printf("%s\n",buff);
printf("recv returned %d\n",test);
close(sock);
return 0;
}
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Сокеты в Си (продолжене) (2005)
- Форум Клиент, сервер и их правильная работа. (2005)
- Форум Подключиться к unix-сокету через bash (2020)
- Форум Неполучается слушать сокет на порту возврашенном системой (2005)
- Форум Не понимаю почему не работает (2013)
- Форум Сокеты, Передача данных, C/C++ (2006)
- Форум socket error (2009)
- Форум Подсчет числа возможных открытых TCP-портов (2011)
- Форум проблема с сокетами [C] (2009)
- Форум [C] Получить данные на TCP сокет (2008)