SK/processes/sockets/c-inet-udp.c
Dawid Pietrykowski 305a058d0c Urgent sockets
2023-02-11 14:57:30 +01:00

60 lines
1.5 KiB
C

#include <sys/socket.h>
#include <netinet/in.h>
#include <string.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
typedef struct sockaddr_in SockAddr_in;
typedef struct sockaddr SockAddr;
void handle_error(char *txt)
{
perror(txt);
exit(-1);
}
int main()
{
int socket_fd;
if ((socket_fd = socket(PF_INET, SOCK_DGRAM, 0)) == -1)
handle_error("socket");
SockAddr_in caddr;
SockAddr_in saddr;
socklen_t addr_size = sizeof(SockAddr_in);
memset(&saddr, 0, addr_size);
saddr.sin_port = htons(4040);
saddr.sin_family = PF_INET;
inet_pton(PF_INET, "127.0.0.1", &(saddr.sin_addr.s_addr));
memset(&caddr, 0, addr_size);
caddr.sin_port = htons(4041);
caddr.sin_family = PF_INET;
caddr.sin_addr.s_addr = INADDR_ANY;
inet_pton(PF_INET, "127.0.0.1", &(caddr.sin_addr.s_addr));
if (bind(socket_fd, (SockAddr *)&caddr, addr_size) == -1)
handle_error("bind");
double dd = 21.21;
if (sendto(socket_fd, &dd, sizeof(double), 0, (SockAddr *)&saddr, addr_size) == -1)
handle_error("sendto");
printf("sent: %f\n", dd);
dd = 111.1;
if (sendto(socket_fd, &dd, sizeof(double), 0, (SockAddr *)&saddr, addr_size) == -1)
handle_error("sendto");
printf("sent: %f\n", dd);
dd = 321.1;
if (sendto(socket_fd, &dd, sizeof(double), 0, (SockAddr *)&saddr, addr_size) == -1)
handle_error("sendto");
printf("sent: %f\n", dd);
if (close(socket_fd) == -1)
handle_error("close");
return 0;
}