Невозможно отправить пакеты данных через UDP - PullRequest
0 голосов
/ 13 апреля 2020

Это код, который я использовал для передачи данных по сети UDP

// server program for udp connection 
#include <stdio.h> 
#include <strings.h> 
#include <sys/types.h> 
#include <arpa/inet.h> 
#include <sys/socket.h> 
#include <netinet/in.h> 
#include <string.h>

#define PORT xxxx 
#define MAXLINE 1000 

// Driver code 
int main() 
{    
    char buffer[100]; 
    char *message = "Hello Client"; 
    int listenfd, len; 
    struct sockaddr_in servaddr, cliaddr; 
    bzero(&servaddr, sizeof(servaddr)); 

    // Create a UDP Socket 
    listenfd = socket(AF_INET, SOCK_DGRAM, 0);         
    servaddr.sin_addr.s_addr = inet_addr("192.168.xx.xx"); //htonl(INADDR_ANY); 
    servaddr.sin_port = htons(PORT); 
    servaddr.sin_family = AF_INET;  

    // bind server address to socket descriptor 
    bind(listenfd, (struct sockaddr*)&servaddr, sizeof(servaddr)); 

    //receive the datagram

    while(1){

    len = sizeof(cliaddr); 
    int n = recvfrom(listenfd, buffer, sizeof(buffer), 
            0, (struct sockaddr*)&cliaddr,&len); //receive message from server 
    buffer[n] = '\0'; 
    puts(buffer);

    // send the response 
    sendto(listenfd, message, strlen(message), 0, 
          (struct sockaddr*)&cliaddr, sizeof(cliaddr));

     } 
}

Это мой код, который отлично работает с функциями recvfrom и sendto. но когда я пытаюсь выполнить только sendto функцию только для отправки данных по сети UDP. Он перестает работать

while(1){

    len = sizeof(cliaddr); 
    /*int n = recvfrom(listenfd, buffer, sizeof(buffer), 
            0, (struct sockaddr*)&cliaddr,&len); //receive message from server 
    buffer[n] = '\0'; 
    puts(buffer);*/

    // send the response 
    sendto(listenfd, message, strlen(message), 0, 
          (struct sockaddr*)&cliaddr, sizeof(cliaddr));

     } 

после этого моя сеть перестает отправлять данные на клиентское устройство.

Что мне делать, чтобы решить эту проблему?

кто-нибудь, пожалуйста, помогите мне!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...