c - udp senden und empfangen auf der gleichen Steckdose

Ich würde gerne Pakete empfangen und senden auf der gleichen Steckdose, ist es möglich oder muss ich schaffen, zwei sockel, eine zum senden und eine zum empfangen? Wenn ja, können Sie mir ein Beispiel nennen?

Andere Frage: wie kann ich die Quell-ip von einem empfangenen Paket?

BEARBEITEN (code Beispiel):

int main(void) {
    struct sockaddr_in si_me, si_other;
    int s, i, slen=sizeof(si_other);
    char buf[BUFLEN];

    if ((s=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP))==-1)
        die("socket");

    memset((char *) &si_me, 0, sizeof(si_me));
    si_me.sin_family = AF_INET;
    si_me.sin_port = htons(1234);
    si_me.sin_addr.s_addr = htonl(192.168.1.1);

    if (bind(s, &si_me, sizeof(si_me))==-1)
        die("bind");

    if (recvfrom(s, buf, BUFLEN, 0, &si_other, &slen)==-1)
       diep("recvfrom()");
    printf("Data: %s \nReceived from %s:%d\n\n", buf, inet_ntoa(si_other.sin_addr), ntohs(si_other.sin_port));

    //now I want the server to answer back to the client

    close(s);
    return 0;
}
InformationsquelleAutor user3574984 | 2014-05-18
Schreibe einen Kommentar