Мне нужно подключиться к удаленному серверу по протоколу UDP и отправить ему заранее определенное сообщение, чтобы получить сообщение обратно. Сначала я попробовал это в TCP, и это работало, но в UDP после того, как я отправил сообщение и прослушал ответ в recvfrom (), я ничего не получил. Может кто-нибудь сказать мне, в чем может быть проблема здесь.
if ((bytes_sent = sendto(sockfd, UDP_MSG, strlen(UDP_MSG), 0, p->ai_addr, p->ai_addrlen)) == -1) {
perror("ClientUDP: Error sending data");
exit(1);
}
printf("Data sent %s\n", UDP_MSG);
len = sizeof(struct sockaddr_storage);
if ((bytes_recv = recvfrom(sockfd, bufudp, MAXDATASIZE-1, 0,(struct sockaddr*)&addr, &len)) == -1) {
perror("Error receiving in UDP");
exit(1);
}
printf("Bytes recv %d\n", bytes_recv);
bufudp[bytes_recv] = '\0';
printf("ClientUDP: Received\n %s \n",bufudp );
Порт вводится с клавиатуры с помощью scanf (), а сообщение представляет собой строку «HI».