diff options
author | Franciszek Malinka <franciszek.malinka@gmail.com> | 2021-10-05 21:49:54 +0200 |
---|---|---|
committer | Franciszek Malinka <franciszek.malinka@gmail.com> | 2021-10-05 21:49:54 +0200 |
commit | c5fcf7179a83ef65c86c6a4a390029149e518649 (patch) | |
tree | d29ffc5b86a0d257453cedcf87d91a13d8bf3b0d /Semestr 4/sieci/pracownia2/udp_server.c | |
parent | f8a88b6a4aba1f66d04711a9330eaba49a50c463 (diff) |
Duzy commit ze smieciami
Diffstat (limited to 'Semestr 4/sieci/pracownia2/udp_server.c')
-rwxr-xr-x | Semestr 4/sieci/pracownia2/udp_server.c | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/Semestr 4/sieci/pracownia2/udp_server.c b/Semestr 4/sieci/pracownia2/udp_server.c deleted file mode 100755 index b5ae6d1..0000000 --- a/Semestr 4/sieci/pracownia2/udp_server.c +++ /dev/null @@ -1,59 +0,0 @@ -#include <netinet/ip.h> -#include <arpa/inet.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> -#include <errno.h> - -int main() -{ - int sockfd = socket(AF_INET, SOCK_DGRAM, 0); - if (sockfd < 0) { - fprintf(stderr, "socket error: %s\n", strerror(errno)); - return EXIT_FAILURE; - } - - struct sockaddr_in server_address; - bzero (&server_address, sizeof(server_address)); - server_address.sin_family = AF_INET; - server_address.sin_port = htons(54321); - server_address.sin_addr.s_addr = htonl(INADDR_ANY); - if (bind (sockfd, (struct sockaddr*)&server_address, sizeof(server_address)) < 0) { - fprintf(stderr, "bind error: %s\n", strerror(errno)); - return EXIT_FAILURE; - } - - for (;;) { - - struct sockaddr_in sender; - socklen_t sender_len = sizeof(sender); - u_int8_t buffer[IP_MAXPACKET+1]; - - ssize_t datagram_len = recvfrom (sockfd, buffer, IP_MAXPACKET, 0, (struct sockaddr*)&sender, &sender_len); - if (datagram_len < 0) { - fprintf(stderr, "recvfrom error: %s\n", strerror(errno)); - return EXIT_FAILURE; - } - - char sender_ip_str[20]; - inet_ntop(AF_INET, &(sender.sin_addr), sender_ip_str, sizeof(sender_ip_str)); - printf ("Received UDP packet from IP address: %s, port: %d\n", sender_ip_str, ntohs(sender.sin_port)); - - buffer[datagram_len] = 0; - printf ("%ld-byte message: +%s+\n", datagram_len, buffer); - - char* reply = "Thank you!"; - ssize_t reply_len = strlen(reply); - if (sendto(sockfd, reply, reply_len, 0, (struct sockaddr*)&sender, sender_len) != reply_len) { - fprintf(stderr, "sendto error: %s\n", strerror(errno)); - return EXIT_FAILURE; - } - - fflush(stdout); - } - - close (sockfd); - return EXIT_SUCCESS; -} - |