49 lines
1.1 KiB
C
49 lines
1.1 KiB
C
#define _XOPEN_SOURCE 700
|
|
#include <stdio.h>
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <sys/un.h>
|
|
#include <string.h>
|
|
#include <unistd.h>
|
|
#include <signal.h>
|
|
#include <stdlib.h>
|
|
#include <errno.h>
|
|
#define MAXLEN 32
|
|
|
|
int main(void)
|
|
{
|
|
const char sockname[] = "/tmp/tidssocket";
|
|
int fd;
|
|
struct sockaddr_un addr;
|
|
char recvbuffer[MAXLEN];
|
|
|
|
/* skapa en socket fildeskriptor */
|
|
fd = socket(AF_UNIX, SOCK_STREAM, 0);
|
|
if ( fd == -1 )
|
|
{
|
|
perror("Create socket failed");
|
|
return 1;
|
|
}
|
|
/* sätt adressfamiljen och socket-filen */
|
|
addr.sun_family = AF_UNIX;
|
|
strcpy(addr.sun_path, sockname);
|
|
|
|
/* anslut till servern */
|
|
if ( (connect(fd, (const struct sockaddr*) &addr,
|
|
sizeof(struct sockaddr_un))) == -1 )
|
|
{
|
|
perror("Can't connect");
|
|
fprintf(stderr, "The server is down?\n");
|
|
return 1;
|
|
}
|
|
/* läs tiden från servern */
|
|
if ( (read(fd, recvbuffer, MAXLEN)) == -1 )
|
|
{
|
|
perror("Can't read");
|
|
return 1;
|
|
}
|
|
printf("Server time is: %s", recvbuffer);
|
|
write(fd, "Thank you for the time", 23);
|
|
return 0;
|
|
}
|