본문 바로가기

컴퓨터/C

C TCP/IP echo server, client 에코 서버, 클라이언트 I. server.c 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 8 #define BUF_SIZE 1024 9 10 void error_handling(char* message); 11 12 int main (int argc, char* argv[]) { 13 int serv_sock, clnt_sock; 14 char message[BUF_SIZE]; 15 int str_len, i; 16 17 struct sockaddr_in serv_adr; 18 struct sockaddr_in clnt_adr; 19 socklen_t clnt_adr_sz; 20 21 FILE* readfp; 22 FILE* writefp; 23 24..
C fdopen() 스트림 열기 I. syntax #include FILE *fdopen(int fd, char* mode); fopen() 함수는 새로 파일을 열지만, fdopen()은 이미 열린 fd 에서 스트림을 연다. II. return 성공시 파일 포인터, 실패 시 NULL 포인터 III. parameters 1. int fd 열려고 하는 스트림의 파일 디스크립터 2. char* mode 개방 모드. 2022.10.31 - [컴퓨터/C] - C fopen, fclose 파일의 개방과 종료 C fopen, fclose 파일의 개방과 종료 I. 파일 개방 모드 파일 개방 모드 = 파일 접근 모드 + 데이터 입·출력 모드 1. 파일 접근 모드 모드 의미 r 파일을 읽기 위해서 개방한다. 오로지 읽는 것만 가능하다. w 데이터를 쓰기..
C atoi() I. syntax #include int atoi(const char *string); II. return 입력 문자를 숫자로 해석하여 생성되는 int 값을 리턴. 실패시 0 III. parameters const char *string 변환할 문자열
C connect() I. syntax #include int connect(int sock, struct sockaddr* servaddr, socklen_t addrlen); II. return 성공 시 0, 실패 시 -1 반환 III. parameters 1. int sock 클라이언트 소켓의 파일 디스크립터 전달 2. struct sockaddr* addr 연결요청 할 서버의 주소정보를 담은 변수의 주소 값 전달 3. socklen_t addrlen 두 번째 매개변수 servaddr에 전달된 주소의 변수 크기를 바이트 단위로 전달
C accept() I. syntax #include int accept(int sock, struct sockaddr* addr, socklen_t* addrlen); II. return 성공 시 생성된 소켓의 파일 디스크립터, 실패 시 -1 반환 III. parameters 1. int sock 서버 소켓의 파일 디스크립터 전달. 2. struct sockaddr* addr 연결요청 한 클라이언트의 주소정보를 담을 변수(clnt_adr)의 주소 값 전달, 함수호출이 완료되면 인자로 전달된 주소의 변수에는 클라이언트의 주소정보가 채워진다. (struct sockaddr*)&clnt_adr 3. socklen_t* addrlen 두 번째 매개변수 addr에 전달된 주소의 변수 크기를 바이트 단위로 전달, 단 크기정보를 변수..