client.c
----------
#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <sys/un.h>
#include <unistd.h>

int main()
{
 int sockfd;
 int len;
 struct sockaddr_un address;
 int result;
 char ch = 'A';
 
 sockfd = socket(AF_UNIX, SOCK_STREAM, 0);
 address.sun_family = AF_UNIX;
 strcpy(address.sun_path, "server_socket");
 len = sizeof(address);
 
 result = connect(sockfd, (struct sockaddr *)&address, len);
 
 if (result == -1)
 {
  perror("oops: client1");
  exit(1);
 }
 
 write(sockfd, &ch, 1);
 read(sockfd, &ch, 1);
 printf("char from server = %c\n", ch);
 close(sockfd);
 
 return 0;
}



server.c
--------------
#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <sys/un.h>
#include <unistd.h>

int main()
{
 int server_sockfd, client_sockfd;
 int server_len, client_len;
 struct sockaddr_un server_address;
 struct sockaddr_un client_address;
 
 unlink("server_socket");
 server_sockfd = socket(AF_UNIX, SOCK_STREAM, 0);
 
 server_address.sun_family = AF_UNIX;
 strcpy(server_address.sun_path, "server_socket");
 server_len = sizeof(server_address);
 
 bind(server_sockfd, 5);
 while (1)
 {
  char ch;
  printf("server waiting\n");
 
  client_len = sizeof(client_address);
  client_sockfd = accept(server_sockfd, (struct sockaddr *)&client_address, &client_len);
 
  read(client_sockfd, &ch, 1);
  ch++;
  write(client_sockfd, &ch, 1);
  close(client_sockfd);
 }
 
 return 0;
}

신고
블로그 이미지

꽃중년

불만있으면 떠나라...

티스토리 툴바