Привязка сокета UDP windows 10 против windows 7 - PullRequest
0 голосов
/ 22 января 2020

Я пытался связать сокет в windows 10 как в c (используя cygwin ), так и python.

Оба языка не работают, реализация c возвращает: **"bind: Cannot assign requested address"**.

Я не уверен, что проблема в том, что запуск одного и того же кода на windows 7 не дает проблема.

У кого-нибудь есть подсказки?

Я включаю код c:

#include<stdio.h>   //printf
#include<string.h>  //memset
#include<stdlib.h>  //exit(0);
#include<arpa/inet.h>
#include<sys/socket.h>
#include<unistd.h> //close

#include <sys/errno.h>

int main(int argc, char *argv[])
    {
    //initialize socket and structure
    int socket_info;
    struct sockaddr_in server;

    //create socket
    socket_info = socket(AF_INET, SOCK_DGRAM, 0);
    if (socket_info == -1) {
        printf("Could not create socket.");
        exit(0); 
    }

    // zero out the structure
    memset((char *) &server, 0, sizeof(server));
    server.sin_family = AF_INET;

    //Use this ip address 
    char pc_ip_addr[] = "192.168.100.47";
    inet_pton(AF_INET, pc_ip_addr, &server.sin_addr.s_addr);

    //Destination port
    server.sin_port = htons( 12345 );

    //Binding address to this server
    if (bind(socket_info, (struct sockaddr *)&server, sizeof(server)) != 0) {
        perror("Binding error");
        exit(0); 
    }

    puts("Server binding success.");

    close(socket_info);
}
...