У меня есть функция ниже, которая отправляет message
в next_hop
(например, 192.168.0.10) в качестве одноадресной передачи UDP. Когда я скомпилирую код, я получаю следующее предупреждение passing argument 2 of 'sendto' makes pointer from integer without a cast
для строки if(sendto(s, *message, BUFSIZE, 0, &si_other, slen) == -1)
. Как я могу исправить код? Спасибо за ответы.sendto() - Unicast UDP в C
void log_msg_send(char *message, char *next_hop){
struct sockaddr_in si_other;
int s, slen = sizeof(si_other);
int port_no = 3333;
char *nexthop;
unsigned short Server_port;
nexthop = next_hop;
Server_port = port_no;
if((s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1) {
fprintf(stderr,"socket error");
exit(1);
}
memset((char *) &si_other, 0, sizeof(si_other));
si_other.sin_family = AF_INET;
si_other.sin_port = htons(Server_port);
if(inet_aton(nexthop, &si_other.sin_addr) == 0){
fprintf(stderr,"socket error");
exit(1);
}
if(sendto(s, *message, BUFSIZE, 0, &si_other, slen) == -1){
fprintf(stderr,"socket error");
exit(1);
}
close(s);
}
Почему вы разыскиваете 'сообщение' в любом случае? – zneak
Я удалил *, теперь я получаю следующее предупреждение: «Передача аргумента 5« sendto »из несовместимого типа указателя» – johan