-
-
Save infiniteregrets/7ec354e92254e630c30bc4d77379e6fe to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <stdlib.h> | |
#include <string.h> | |
#include <unistd.h> | |
#include <sys/socket.h> | |
#include <netinet/in.h> | |
#include <arpa/inet.h> | |
int main() { | |
int udp_socket = socket(AF_INET, SOCK_DGRAM, 0); | |
if (udp_socket < 0) { | |
printf("Error creating socket\n"); | |
return 1; | |
} | |
struct sockaddr_in server_addr; | |
memset(&server_addr, 0, sizeof(server_addr)); | |
server_addr.sin_family = AF_INET; | |
server_addr.sin_port = htons(8060); | |
inet_pton(AF_INET, "127.0.0.1", &server_addr.sin_addr); | |
char message[] = "Hello World!"; | |
struct msghdr msg; | |
memset(&msg, 0, sizeof(msg)); | |
msg.msg_name = &server_addr; | |
msg.msg_namelen = sizeof(server_addr); | |
struct iovec iov; | |
iov.iov_base = message; | |
iov.iov_len = sizeof(message); | |
msg.msg_iov = &iov; | |
msg.msg_iovlen = 1; | |
int bytes_sent = sendmsg(udp_socket, &msg, 0); | |
if (bytes_sent < 0) { | |
printf("Error sending message\n"); | |
return 1; | |
} | |
char buffer[1024]; | |
memset(buffer, 0, sizeof(buffer)); | |
struct sockaddr_in client_addr; | |
socklen_t client_addr_len = sizeof(client_addr); | |
struct msghdr recv_msg; | |
memset(&recv_msg, 0, sizeof(recv_msg)); | |
recv_msg.msg_name = &client_addr; | |
recv_msg.msg_namelen = sizeof(client_addr); | |
struct iovec recv_iov; | |
recv_iov.iov_base = buffer; | |
recv_iov.iov_len = sizeof(buffer); | |
recv_msg.msg_iov = &recv_iov; | |
recv_msg.msg_iovlen = 1; | |
int bytes_received = recvmsg(udp_socket, &recv_msg, 0); | |
if (bytes_received < 0) { | |
printf("Error receiving message\n"); | |
return 1; | |
} | |
printf("Received message: %s\n", buffer); | |
close(udp_socket); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment