40 lines
933 B
C
40 lines
933 B
C
|
#include <stdio.h>
|
||
|
#include <stdlib.h>
|
||
|
#include <string.h>
|
||
|
#include <sys/socket.h>
|
||
|
#include <sys/un.h>
|
||
|
#include <unistd.h>
|
||
|
|
||
|
const char *path = "/tmp/socket_test";
|
||
|
|
||
|
void handle_error(char *txt)
|
||
|
{
|
||
|
perror(txt);
|
||
|
exit(1);
|
||
|
}
|
||
|
|
||
|
int main()
|
||
|
{
|
||
|
int fd;
|
||
|
struct sockaddr_un my_addr, serv_addr;
|
||
|
|
||
|
memset(&my_addr, 0, sizeof(struct sockaddr_un));
|
||
|
my_addr.sun_family = AF_UNIX;
|
||
|
strncpy(my_addr.sun_path, path, sizeof(my_addr.sun_path) - 1);
|
||
|
memset(&serv_addr, 0, sizeof(struct sockaddr_un));
|
||
|
serv_addr.sun_family = AF_UNIX;
|
||
|
strncpy(serv_addr.sun_path, path, sizeof(serv_addr.sun_path) - 1);
|
||
|
|
||
|
if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
|
||
|
handle_error("socket");
|
||
|
|
||
|
if (connect(fd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) == -1)
|
||
|
handle_error("connect");
|
||
|
|
||
|
double d1 = 21.1;
|
||
|
write(fd, (void *)&d1, sizeof(double));
|
||
|
printf("%f\n", d1);
|
||
|
close(fd);
|
||
|
|
||
|
return 0;
|
||
|
}
|