Skip to content

Instantly share code, notes, and snippets.

@makerj
Created February 13, 2017 11:36
Show Gist options
  • Save makerj/b6bf6ea91a8d8caa0ea732dc485199a9 to your computer and use it in GitHub Desktop.
Save makerj/b6bf6ea91a8d8caa0ea732dc485199a9 to your computer and use it in GitHub Desktop.
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "time.h"
#include "sys/types.h"
#include "sys/socket.h"
#include "netinet/in.h"
#define BUF_LEN 8192
char* response = "[{\"type\":2,\"name\":\"Integer Argument\",\"size\":4,\"mask\":-1,\"value\":12345},"
"{\"type\":1,\"name\":\"String Argument\",\"size\":11,\"mask\":-1,\"value\":\"Hello World\"},"
"{\"type\":3,\"name\":\"Buffer Argument\",\"size\":5,\"mask\":-1,\"value\":\"48454c4c4f\"},"
"{\"type\":4,\"name\":\"Float Argument\",\"size\":4,\"mask\":-1,\"value\":1.234500}]";
int main(int argc, char *argv[])
{
char buffer[BUF_LEN];
struct sockaddr_in server_addr, client_addr;
char temp[20];
int server_fd, client_fd;
int len, msg_size;
if((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{// 소켓 생성
printf("Server : Can't open stream socket\n");
exit(0);
}
memset(&server_addr, 0x00, sizeof(server_addr));
//server_Addr 을 NULL로 초기화
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = htonl(INADDR_ANY);
server_addr.sin_port = htons(55555);
//server_addr 셋팅
if(bind(server_fd, (struct sockaddr *)&server_addr, sizeof(server_addr)) <0)
{//bind() 호출
printf("Server : Can't bind local address.\n");
exit(0);
}
if(listen(server_fd, 5) < 0)
{//소켓을 수동 대기모드로 설정
printf("Server : Can't listening connect.\n");
exit(0);
}
memset(buffer, 0x00, sizeof(buffer));
printf("Server : wating connection request on port 55555\n");
puts("Hard-Coded Response");
printf("%s\n", response);
len = sizeof(client_addr);
while(1)
{
client_fd = accept(server_fd, (struct sockaddr *)&client_addr, &len);
if(client_fd < 0)
{
printf("Server: accept failed.\n");
exit(0);
}
inet_ntop(AF_INET, &client_addr.sin_addr.s_addr, temp, sizeof(temp));
printf("Server : %s client connected.\n", temp);
msg_size = read(client_fd, buffer, BUF_LEN);
write(client_fd, response, strlen(response));
close(client_fd);
printf("Server : %s client closed.\n", temp);
}
close(server_fd);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment