Skip to content

Instantly share code, notes, and snippets.

@jitomesky
Created April 20, 2014 16:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jitomesky/11118882 to your computer and use it in GitHub Desktop.
Save jitomesky/11118882 to your computer and use it in GitHub Desktop.
C言語とRubyでsocket通信
# -*- coding: utf-8 -*-
require 'socket'
socket = Socket.unix('./server_socket')
socket.write('A')
p socket.getc
socket.close
#include <sys/types.h>
#include <sys/socket.h>
#include <string.h>
#include <stdio.h>
#include <sys/un.h>
#include <unistd.h>
int main(void)
{
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 , (struct sockaddr *)&server_address , server_len);
listen(server_sockfd , 5);
while(1) {
char ch ;
printf("server waiting\n");
client_sockfd = accept(server_sockfd ,(struct sockaddr *)&client_address , (socklen_t *)&client_len);
read(client_sockfd,&ch,1);
ch++;
write(client_sockfd,&ch,1);
close(client_sockfd);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment