#include #include #include #include #include #include #include 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(AF_INET, SOCK_STREAM, 0)) == -1) handle_error("socket"); SockAddr_in saddr; socklen_t addr_size = sizeof(SockAddr_in); memset(&saddr, 0, addr_size); saddr.sin_port = htons(4040); saddr.sin_family = AF_INET; inet_pton(AF_INET, "127.0.0.1", &(saddr.sin_addr.s_addr)); // memset(&caddr, 0, addr_size); // caddr.sin_port = htons(4041); // caddr.sin_family = AF_INET; // caddr.sin_addr.s_addr = INADDR_ANY; // inet_pton(AF_INET, "127.0.0.1", &(caddr.sin_addr.s_addr)); // if (bind(socket_fd, (SockAddr *)&caddr, addr_size) == -1) // handle_error("bind"); if (connect(socket_fd, (SockAddr *)&saddr, addr_size) == -1) handle_error("connect"); printf("connected\n"); double dd = 21.21; if (write(socket_fd, &dd, sizeof(double)) == -1) handle_error("sendto"); printf("sent: %f\n", dd); usleep(100); dd = 111.1; if (send(socket_fd, &dd, sizeof(double), MSG_OOB) == -1) handle_error("sendto"); printf("sent: %f\n", dd); if (close(socket_fd) == -1) handle_error("close"); return 0; }