본문 바로가기

프로그래밍 언어

[C] Linux C getopt() 함수 프로그램 실행시 입력 받은 인자를 받아 분석하여 옵션 처리를 가능케 해주는 함수 입니다. extern char * optarg : 인수를 필요로 하는 옵션을 처리할 때 필요한 인수 포인터 : 인자를 필요로 하는 옵션에 대한 인자값이 optarg에 들어가 있다. extern int optind : 처리되는 인자의 숫자를 나타낸다. #./exe -a -b -c -d 123 -e 1 2 3 4 5 6 7 더보기
[C] Linux C connect() 함수 서버로 접속을 요청하는 함수 사용 예제) struct sockaddr_in server_addr; memset(server_addr, 0, sizeof(server_addr); server_addr.sin_family = AF_INET; server_addr.sin_port = htons(4000); server_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); if(connect(sock, (struct sockaddr*)&server_addr, sizeof(server_addr)) == -1){ printf("connect() error!!\n"); exit(1); } 더보기
[C] Linux C close() 함수 파일 - open()으로 열린 파일 종료 통신 - socket()으로 생성된 소켓 종료 사용 예제) close(fd); close(sock); 더보기
[C] Linux C write() 함수 파일 - 파일에 쓰기 통신 - 데이터를 송신(보낼때)을 할 때 사용 사용 예제) char message[30];memset(message, 0, sizeof(message);scanf("%s",message);write(sock, message, sizeof(message); 더보기
[C] Linux C read() 함수 파일 - 파일의 내용을 읽기 통신 - 데이터를 수신(받는데) 사용 사용 예제) 파일 while( 0 < ( rd_size = read( fd, buff, BUFF_SIZE-1) ) ) { //4Byte씩 읽습니다.buff[rd_szie] = '0\'; //puts()를 위해 NULL을 대입puts(buff);} 통신char message[30];memset(message, 0, sizeof(message);str_len = read(sock, message, sizeof(message) -1); if( -1 == str_len) { printf("read() error!!\n"); exit(1); } printf("message : %s\n", message); 더보기
[C] Linux C accept() 함수 클라이언트의 접속 요청을 받아드리고 클라이언트와 통신하는 전용 소켓을 생성 사용 예제) int client_sock; struct sockaddr_in client_addr; int client_addr_size; client_addr_size = sizeof(client_addr); client_sock = accept(server_sock, (struct sockaddr*)&client_addr, &client_addr_size); if(-1 == client_sock) { printf("accept() error!!\n"); exit(1); } 더보기
[C] Linux C listen() 함수 클라이언트의 접속 요청을 기다리도록 설정합니다. 사용 예제 ) if ( -1 == listen(Sock,5) ) { printf("listen() error!!\n"); exit(1); } *백로그 큐는 보통 5로 잡는다. *백로그 큐는 연결 제한 수가 아닌 연결 대기 제한 수이다. *추가설명 클리라이언트가 connect()를 하게 되면 클라이언트는 서버에게 connect request를 보내게 되는데, 서버는 connect request 신호를 받고 대기 큐에서 클라이언트를 대기 시킨다. 그리고 서버는 자신과 연결되있는 클라이언트가 없다면 대기 큐에 있는 클라이언트를 한명 잡아다가 연결을 하게 된다. 이때 대기큐의 제한을 걸어 주는 것이 백로그 큐이다. (대기 큐는 5로 잡고 10개의 클라이언트가 연결.. 더보기
[C] Linux C bind() 함수 bind()함수는 소켓에 주소를 할당 해주는 함수 입니다. 사용 예제) struct sockaddr_in addr; memset(&addr, 0, sizeof(addr)); addr.sin_family = AF_INET; // IPv4 인터넷 프로토롤 addr.sin_port = htons( 4000); // 사용할 port 번호는 4000 addr.sin_addr.s_addr = htonl( INADDR_ANY); // 32bit IPV4 주소 if ( -1 == bind(Sock, (struct sockaddr*)&addr, sizeof(addr)) ) { printf("bind() error!!"); exit(1); } 더보기
[C] Linux C socket() 함수 소켓을 생성 하는 함수로서 소켓이 생성되면 소켓 식별자를 반환한다. 사용 예제) int Sock; Sock = socket(PF_INET, SOCK_STREAM, 0); if ( Sock == -1) { printf("socket() error!!\n"); exit(1); } 더보기
[C] C언어 TCP/IP 통신 함수 사용 순서 더보기