В общем цель проста, выводить информацию приходящию в виде UDP пакетов на 3000 порт моей машины. адресс машины 192.168.0.1
вот что написал после чтения манов, как вы поняли из того что появился этот топик этот код не работает:
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <cstdlib>
#include <cstdio>
int main()
{
printf("Create socket...\n");
int socket_fd = socket(PF_INET, SOCK_DGRAM, 0);
if(socket_fd == -1){
fprintf(stderr, "Can not create socket.\n");
return EXIT_FAILURE;
}
sockaddr_in my_addr;
my_addr.sin_family = AF_INET;
my_addr.sin_port = 3000;
if(inet_aton("192.168.0.1", &(my_addr.sin_addr))==0){
fprintf(stderr, "Can not convert IP adress.\n");
return EXIT_FAILURE;
}
printf("Bind socket to adress...\n");
if(bind(socket_fd, (sockaddr *)&my_addr, sizeof(my_addr))==-1){
fprintf(stderr, "Can not bind to this adress.\n");
return EXIT_FAILURE;
}
printf("Receive data...\n");
char buf[10000];
printf("%d\n", sizeof(buf));
int res;
while((res=recv(socket_fd, (void *)buf, sizeof(buf), 0))!=-1){
buf[res]='\0';
printf("%s\n", buf);
}
fprintf(stderr, "Error during receiving data.\n");
close(socket_fd);
return EXIT_SUCCESS;
}
Что не так? При запуске, доходит до получения данных, а потом ничего не происходит. Данные приходят, но она ничего не выдает на вывод.