728x90
소켓 기반에서의 표준 입출력 함수 호출
1. 소켓 생성
2. 파일 디스크립터 -> FILE * 변환
3. 표준 입출력 함수 사용
4. 함수 호출 후 fflush 함수 호출로 버퍼 비움
int main(int argc, char *argv[])
{
int sock;
char message[BUF_SIZE];
int str_len;
struct sockaddr_in serv_adr;
FILE * readfp;
FILE * writefp;
sock=socket(PF_INET, SOCK_STREAM, 0);
...;
readfp=fdopen(sock, "r"); // fd -> FILE*
writefp=fdopen(sock, "w"); // fd -> FILE*
while(1)
{
fputs("Input message(Q to quit): ", stdout);
fgets(message, BUF_SIZE, stdin);
if(!strcmp(message,"q\n") || !strcmp(message,"Q\n")) {
break;
}
fputs(message, writefp); // 전송
fflush(writefp); // 버퍼 비움
fgets(message, BUF_SIZE, readfp); // 수신
printf("Message from server: %s", message);
}
fclose(writefp);
fclose(readfp);
return 0;
}
728x90
'Programming > Network' 카테고리의 다른 글
열혈 TCP/IP 16-2. 파일 디스크립터의 복사와 half-close (0) | 2021.03.28 |
---|---|
열혈 TCP/IP 16-1. 입력 / 출력 스트림의 분리 (0) | 2021.03.28 |
열혈 TCP/IP 15-2. 표준 입출력 함수 사용 (0) | 2021.03.28 |
열혈 TCP/IP 15-1. 표준 입출력 함수의 장점 (0) | 2021.03.28 |
열혈 TCP/IP 14-2. 브로드캐스트(Broadcast) (0) | 2021.03.14 |