컴퓨터/Linux

[Linux C] TCP 서버 프로그램

Begi 2022. 10. 5. 21:55
반응형

Linux TCP 서버의 C 프로그램 코드는 다음과 같다.

 

// 소켓 생성
socket_desc = socket(AF_INET, SOCK_STREAM, 0);
if (socket_desc == -1) printf("Could not create socket");

server.sin_family  = AF_INET;
server.sin_addr.s_addr  = INADDR_ANY;
server.sin_port  = htons(8888);

int option = 1;
setsockopt(socket_desc, SOL_SOCKET, SO_REUSEADDR, &option, sizeof(option));

// Bind
if(bind(socket_desc,(struct sockaddr *)&server, sizeof(server)) < 0) 
{
    puts("Bind failed");
    return -1;
}
puts("Bind done");

// Listen
listen(socket_desc , 3);

// Accept
puts("Waiting for incoming connections...");
c = sizeof(struct sockaddr_in);
new_socket = accept(socket_desc, (struct sockaddr *)&client, (socklen_t*)&c);
if (new_socket<0) perror("accept failed");
printf("Connection accepted (socket=%d)\n", new_socket);

// 전송
message = "Hello Client !\n";
write(new_socket , message , strlen(message));

// 수신
while((read_size = recv(new_socket, client_message, 1024, 0)) > 0)
{
    write(new_socket , client_message, read_size);
}

close(new_socket);

 

 

반응형