{"id":2212,"date":"2008-06-11T10:18:17","date_gmt":"2008-06-11T10:18:17","guid":{"rendered":"http:\/\/192.168.0.71:9090\/?p=1741"},"modified":"2008-06-11T10:18:17","modified_gmt":"2008-06-11T10:18:17","slug":"server-client-echo-program-source-%eb%b6%84%ec%84%9d","status":"publish","type":"post","link":"https:\/\/talsu.net\/?p=2212","title":{"rendered":"Server \u2013 Client Echo program source \ubd84\uc11d"},"content":{"rendered":"<h1 class=cjk><span lang=en-US><span lang=en-US><font face=serif size=3>Server \u2013 Client Echo program source <\/font><\/span><\/span><font size=3>\ubd84\uc11d<\/font><\/h1>\n<p style=\"MARGIN-BOTTOM: 0cm\"><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm; MARGIN-LEFT: 2.32cm\"><font size=3>\ubaa9\ucc28<\/font><\/p>\n<ol>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><font size=3>\ud504\ub85c\uadf8\ub7a8\uc758 \uae30\ub2a5\uacfc \ub3d9\uc791 \uc18c\uac1c<\/font><\/p>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><font size=3>\uc6d0\ubcf8 <\/font><span lang=en-US><span lang=en-US><font face=serif size=3>Source<\/font><\/span><\/span><\/p>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><font face=serif size=3>Source <\/font><\/span><\/span><font size=3>\ubd84\uc11d<\/font><\/p>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><font size=3>\uc791\ub3d9 \ub2e4\uc774\uc5b4\uadf8\ub7a8<\/font><\/p>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><font size=3>\uc624\ub958 \uc218\uc815 \ubc0f \uac1c\uc120<\/font><\/p>\n<\/li>\n<\/ol>\n<p style=\"MARGIN-BOTTOM: 0cm; MARGIN-LEFT: 2.32cm\"><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><\/p>\n<ol>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><b><font size=4>\ud504\ub85c\uadf8\ub7a8\uc758 \uae30\ub2a5\uacfc \ub3d9\uc791 \uc18c\uac1c<\/font><\/b><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\">\uc774 <span lang=en-US><span lang=en-US><font face=serif size=3>Linux<\/font><\/span><\/span>\uc6a9 <span lang=en-US><span lang=en-US><font face=serif size=3>Network Echo program<\/font><\/span><\/span>\uc740 <span lang=en-US><span lang=en-US><font face=serif size=3>tcpserv.c , tclcli.c <\/font><\/span><\/span>\ub450\uac1c\uc758 \uc18c\uc2a4\ud30c\uc77c\ub85c \ub418\uc5b4 \uc788\uc73c\uba70 <span lang=en-US><span lang=en-US><font face=serif size=3>Server<\/font><\/span><\/span>\uac00 \ub418\uace0\uc790 \ud558\ub294 \ucabd\uc5d0\uc11c\ub294 <span lang=en-US><span lang=en-US><font face=serif size=3>tcpserv.c<\/font><\/span><\/span>\ub97c \ucef4\ud30c\uc77c \ud558\uc5ec \uc0ac\uc6a9 \ud558\uace0 <span lang=en-US><span lang=en-US><font face=serif size=3>Client<\/font><\/span><\/span>\uac00 \ub418\uace0\uc790 \ud558\ub294 \ucabd\uc5d0\uc11c\ub294 <span lang=en-US><span lang=en-US><font face=serif size=3>tclcli.c<\/font><\/span><\/span>\ub97c \ucef4\ud30c\uc77c \ud558\uc5ec \uc0ac\uc6a9 \ud55c\ub2e4<span lang=en-US><span lang=en-US><font face=serif size=3>.<\/font><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><font face=serif size=3>Server<\/font><\/span><\/span>\uce21\uc5d0\uc11c \ud574\ub2f9\ud558\ub294 \ud504\ub85c\uadf8\ub7a8\uc744 \uc2e4\ud589 \uc2dc\ud0a4\uace0 <span lang=en-US><span lang=en-US><font face=serif size=3>Client<\/font><\/span><\/span>\uce21\uc5d0\uc11c \ud574\ub2f9\ud558\ub294 \uc2e4\ud589 \ud30c\uc77c \ub4a4\uc5d0 \uc11c\ubc84 \uc8fc\uc18c\ub97c \uc801\uc5b4\uc90c\uc73c\ub85c\uc11c \uc11c\ubc84\ub85c \uc811\uc18d \ud558\uace0 \ud504\ub85c\uadf8\ub7a8\uc744 \uc815\uc0c1\uc801\uc73c\ub85c \uc791\ub3d9 \uc2dc\ud0ac \uc218 \uc788\ub2e4<span lang=en-US><span lang=en-US><font face=serif size=3>.<\/font><\/span><\/span><\/p>\n<\/li>\n<\/ol>\n<p style=\"MARGIN-BOTTOM: 0cm\"><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><\/p>\n<p><center><\/p>\n<table borderColor=#000000 cellSpacing=0 cellPadding=4 width=342 border=1>\n<colgroup>\n<col width=332>\n<tbody>\n<tr>\n<td vAlign=top width=332>\n<p><span lang=en-US><font face=serif size=2>Example<\/font><\/span><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td vAlign=top width=332>\n<p style=\"MARGIN-BOTTOM: 0.5cm\"><span lang=en-US><font face=serif size=3>$ .\/tclcli 192.168.0.1<\/font><\/span><\/p>\n<p><span lang=en-US><span lang=en-US><font face=serif size=3>($ .\/<\/font><\/span><\/span>\uc2e4\ud589\ud30c\uc77c\uba85 <span lang=en-US><span lang=en-US><font face=serif size=3>Server<\/font><\/span><\/span>\uc8fc\uc18c<span lang=en-US><span lang=en-US><font face=serif size=3>)<\/font><\/span><\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><\/center><\/p>\n<ol>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><font face=serif size=3>Server<\/font><\/span><\/span>\uc5d0 \uc811\uc18d\ud55c <span lang=en-US><span lang=en-US><font face=serif size=3>Client<\/font><\/span><\/span>\uac00 \uc6d0\ud558\ub294 \ubb38\uc790\ub098 \ubb38\uc790\uc5f4\uc744 \uc785\ub825\ud588\uc744\ub54c \ub611\uac19\uc740 \ub370\uc774\ud130\uac00 \ub418\ub3cc\uc544\uc624\uba74<span lang=en-US><span lang=en-US><font face=serif size=3>(<\/font><\/span><\/span>\ud654\uba74\uc0c1\uc73c\ub85c\ub294 \uac19\uc740 \ubb38\uc790\uc5f4\uc774 <span lang=en-US><span lang=en-US><font face=serif size=3>2<\/font><\/span><\/span>\ubc88 \ucc0d\ud78c\uac83\uc73c\ub85c \ubcf4\uc778\ub2e4<span lang=en-US><span lang=en-US><font face=serif size=3>.) <\/font><\/span><\/span>\ud504\ub85c\uadf8\ub7a8\uc774 \uc815\uc0c1\uc801\uc73c\ub85c \uc791\ub3d9 \ud55c \uac83\uc774\ub2e4<span lang=en-US><span lang=en-US><font face=serif size=3>.<\/font><\/span><\/span><\/p>\n<\/ol>\n<p style=\"MARGIN-BOTTOM: 0cm\"><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><\/p>\n<ol>\n<p style=\"MARGIN-BOTTOM: 0cm\">\uc544\ub798\ub294 \uc815\uc0c1\uc801\uc73c\ub85c \ucef4\ud30c\uc77c \ud55c\ud6c4 \uc791\ub3d9\uc2dc\ud0a4\ub294 \ubaa8\uc2b5\uc774\ub2e4<span lang=en-US><span lang=en-US><font face=serif size=3>.<\/font><\/span><\/span><\/p>\n<\/ol>\n<p style=\"MARGIN-BOTTOM: 0cm\" align=center><img loading=\"lazy\" src=\"http:\/\/temp.talsu.net\/wp-content\/uploads\/2008\/06\/484fa77ec80886L.png\" class=\"aligncenter\" width=\"640\" height=\"170\" alt=\"\uc0ac\uc6a9\uc790 \uc0bd\uc785 \uc774\ubbf8\uc9c0\" \/>\uc11c\ubc84\uce21 <span lang=en-US><span lang=en-US><font face=serif size=3>tcpserv.c <\/font><\/span><\/span>\uc758 \ucef4\ud30c\uc77c\uacfc \uc2e4\ud589<\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\" align=center><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\" align=center><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\" align=center><img loading=\"lazy\" src=\"http:\/\/temp.talsu.net\/wp-content\/uploads\/2008\/06\/484fa7a7d55ca6X.png\" class=\"aligncenter\" width=\"640\" height=\"153\" alt=\"\uc0ac\uc6a9\uc790 \uc0bd\uc785 \uc774\ubbf8\uc9c0\" \/><br clear=left>\ud074\ub77c\uc774\uc5b8\ud2b8\uce21 <span lang=en-US><span lang=en-US><font face=serif size=3>tclcli.c <\/font><\/span><\/span>\uc758 \ucef4\ud30c\uc77c\uacfc \uc2e4\ud589<\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><\/p>\n<ol start=2>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><b><font size=4>\uc6d0\ubcf8 <\/font><\/b><span lang=en-US><span lang=en-US><b><font face=serif size=4>Source<br \/><\/font><\/b><\/span><\/span><\/p>\n<p>tcpserv.c<textarea class=c name=code col=\"60\" row=\"10\">#include &lt;stdio.h&gt;<br \/>\n#include &lt;stdlib.h&gt;<br \/>\n#include &lt;string.h&gt;<br \/>\n#include &lt;unistd.h&gt;<br \/>\n#include &lt;sys\/socket.h&gt;<br \/>\n#include &lt;sys\/types.h&gt;<br \/>\n#include &lt;arpa\/inet.h&gt;<br \/>\n#include &lt;netinet\/in.h&gt;<br \/>\n#include &lt;errno.h&gt;<\/p>\n<p>#define MAXLINE 2000<br \/>\n#define SERV_PORT 9877<\/p>\n<p>void str_echo(int sockfd) {<br \/>\n    ssize_t n;<br \/>\n    char buf[MAXLINE];<\/p>\n<p>    again:<br \/>\n    while((n=read(sockfd, buf, MAXLINE)) &gt;0)<br \/>\n        write(sockfd, buf, n);<\/p>\n<p>    if (n &lt; 0 &amp;&amp; errno == EINTR)<br \/>\n        goto again;<br \/>\n    else if (n &lt; 0) {<br \/>\n        printf(&#8220;str_echo : read error&#8221;);<br \/>\n        exit(0);<br \/>\n    }<br \/>\n}<\/p>\n<p>int main(int argc, char **argv) {<br \/>\n    int listenfd, connfd;<br \/>\n    pid_t childpid;<br \/>\n    socklen_t clilen;<br \/>\n    struct sockaddr_in cliaddr, servaddr;<br \/>\n    listenfd = socket (AF_INET, SOCK_STREAM, 0);<br \/>\n    memset (&amp;servaddr, 0, sizeof(servaddr));<br \/>\n    servaddr.sin_family = AF_INET;<br \/>\n    servaddr.sin_addr.s_addr = htonl(INADDR_ANY);<br \/>\n    servaddr.sin_port = htons(SERV_PORT);<br \/>\n    bind(listenfd, (struct sockaddr_in *) &amp;servaddr, sizeof (servaddr));<br \/>\n    listen(listenfd, 10);<\/p>\n<p>    for( ; ; ) {<br \/>\n        clilen = sizeof(cliaddr);<br \/>\n        connfd = accept(listenfd, (struct sockaddr_in *) &amp;cliaddr, &amp;clilen);<br \/>\n        if( (childpid = fork()) == 0){<br \/>\n            close(listenfd);<br \/>\n            str_echo(connfd);<br \/>\n            exit(0);<br \/>\n        }<br \/>\n    close(connfd);<br \/>\n    }<br \/>\n} <\/textarea> <\/p>\n<p>tclcli.c<textarea class=c name=code col=\"60\" row=\"10\">#include &lt;stdio.h&gt;<br \/>\n#include &lt;stdlib.h&gt;<br \/>\n#include &lt;string.h&gt;<br \/>\n#include &lt;unistd.h&gt;<br \/>\n#include &lt;sys\/socket.h&gt;<br \/>\n#include &lt;sys\/types.h&gt;<br \/>\n#include &lt;arpa\/inet.h&gt;<br \/>\n#include &lt;netinet\/in.h&gt;<\/p>\n<p>#define MAXLINE 2000<br \/>\n#define SERV_PORT 9877<\/p>\n<p>void str_cli(FILE *fp, int sockfd) {<br \/>\n    char sendline[MAXLINE] , recvline[MAXLINE];<br \/>\n    while(fgets(sendline, MAXLINE, fp) != NULL) {<br \/>\n        write(sockfd, sendline, strlen(sendline));<br \/>\n        if (read(sockfd, recvline, MAXLINE) ==0) {<br \/>\n            printf(&#8220;str_cli: server terminated permaturely&#8221;);<br \/>\n            exit(0);<br \/>\n        }<br \/>\n    fputs(recvline, stdout);<br \/>\n    }<br \/>\n}<\/p>\n<p>int main(int argc, char **argv) {<br \/>\n    int sockfd;<br \/>\n    struct sockaddr_in servaddr;<br \/>\n    if(argc != 2)<br \/>\n        printf(&#8220;usage: tcpcli &lt;IP address&gt;&#8221;);<br \/>\n    sockfd = socket(AF_INET, SOCK_STREAM, 0);<br \/>\n    memset(&amp;servaddr, 0, sizeof(servaddr));<br \/>\n    servaddr.sin_family = AF_INET;<br \/>\n    servaddr.sin_port = htons(SERV_PORT);<br \/>\n    inet_pton(AF_INET, argv[1], &amp;servaddr.sin_addr);<br \/>\n    connect(sockfd, (struct sockaddr_in*) &amp;servaddr, sizeof(servaddr));<br \/>\n    str_cli(stdin, sockfd);<br \/>\n    exit(0);<br \/>\n}<br \/>\n<\/textarea><\/li>\n<\/ol>\n<p style=\"MARGIN-BOTTOM: 0cm\"><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><\/p>\n<ol start=3>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><b><font size=4>\uc791\ub3d9 \ub2e4\uc774\uc5b4\uadf8\ub7a8<\/font><\/b><\/p>\n<\/li>\n<\/ol>\n<p style=\"MARGIN-BOTTOM: 0cm\"><img loading=\"lazy\" src=\"http:\/\/temp.talsu.net\/wp-content\/uploads\/2008\/06\/484fa8b7e1ee27J.gif\" class=\"aligncenter\" width=\"640\" height=\"800\" alt=\"\uc0ac\uc6a9\uc790 \uc0bd\uc785 \uc774\ubbf8\uc9c0\" \/><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\">&nbsp;<\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><br clear=left><br \/>&nbsp;<\/p>\n<ol start=4>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><b><font face=serif size=4>Source <\/font><\/b><\/span><\/span><b><font size=4>\ubd84\uc11d<\/font><\/b><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><font face=serif size=3>tcpserv.c <\/font><\/span><\/span>\uc640 <span lang=en-US><span lang=en-US><font face=serif size=3>tclcli.c<\/font><\/span><\/span>\uc758 \uc18c\uc2a4\ud30c\uc77c\uc744 \ubd84\uc11d\ud55c\ub2e4<span lang=en-US><span lang=en-US><font face=serif size=3>. <\/font><\/span><\/span>\uc911\ubcf5\ub418\ub294 \ud5e4\ub354\ud30c\uc77c\uc774 \ub9ce\uc73c\ubbc0\ub85c \ud5e4\ub354\ud30c\uc77c\ub4e4\uc744 \uba3c\uc800 \uc124\uba85\ud55c\ub4a4 \uc18c\uc2a4\ub97c \uc124\uba85 \ud558\uaca0\ub2e4<span lang=en-US><span lang=en-US><font face=serif size=3>. <\/font><\/span><\/span>\uc6d0\ubcf8 \uc18c\uc2a4\ud30c\uc77c\uc740 \ubb38\uc11c\uc758 \uac00\uc7a5 \ub9c8\uc9c0\ub9c9\uc5d0 \ucca8\ubd80 \ud558\uba70 \uc18c\uc2a4 \ubd84\uc11d\uc740\ud504\ub85c\uadf8\ub7a8\uc774 \uc791\ub3d9\ud558\ub294 \uc21c\uc11c\ub300\ub85c \uc124\uba85 \ud558\uaca0\ub2e4<span lang=en-US><span lang=en-US><font face=serif size=3>.<\/font><\/span><\/span><\/p>\n<\/li>\n<\/ol>\n<ul>\n<ul>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><font face=serif size=3>Header<\/font><\/span><\/p>\n<ul>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><font face=serif size=3>stdio.h \u2013 <\/font><\/span><\/span>\ud45c\uc900 \uc785\ucd9c\ub825 \ub77c\uc774\ube0c\ub7ec\ub9ac <span lang=en-US><span lang=en-US><font face=serif size=3>(Standard input\/output)<\/font><\/span><\/span><\/p>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><font face=serif size=3>stdlib.h \u2013 <\/font><\/span><\/span>\ud45c\uc900 \ub77c\uc774\ube0c\ub7ec\ub9ac <span lang=en-US><span lang=en-US><font face=serif size=3>(Standard library)<\/font><\/span><\/span><\/p>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><font face=serif size=3>string.h \u2013 <\/font><\/span><\/span>\ubb38\uc790\uc5f4 \ucc98\ub9ac \ud568\uc218<\/p>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><font face=serif size=3>unistd.h \u2013 <\/font><\/span><\/span>\uc720\ub2c9\uc2a4 \uc2dc\uc2a4\ud15c \ud45c\uc900 \ub77c\uc774\ube0c\ub7ec\ub9ac <span lang=en-US><span lang=en-US><font face=serif size=3>(UNIX Standard library)<\/font><\/span><\/span><\/p>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><font face=serif size=3>sys\/socket.h \u2013 <\/font><\/span><\/span>\uc18c\ucf13 \uc2dc\uc2a4\ud15c \ud568\uc218<\/p>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><font face=serif size=3>sys\/types.h \u2013 <\/font><\/span><\/span>\uc18c\ucf13 \uc2dc\uc2a4\ud15c\uc5d0 \ud544\uc694\ud55c \uc0c1\uc218 \uc120\uc5b8<\/p>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><font face=serif size=3>arpa\/inet.h \u2013 <\/font><\/span><\/span>\uc778\ud130\ub137 \uc8fc\uc18c \uc870\uc791 \ud568\uc218<\/p>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><font face=serif size=3>netinet\/in.h \u2013 <\/font><\/span><\/span>\uc778\ud130\ub137 \uc8fc\uc18c \uc870\uc791 \ud568\uc218<\/p>\n<\/li>\n<\/ul>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif color=#cc6633 size=4>tcpserv.c<\/font><\/b><\/span><\/p>\n<ul>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><b><font size=4>\uba54\uc778 \ud568\uc218 \u2013 <\/font><\/b><span lang=en-US><span lang=en-US><b><font face=serif color=green size=4>int<\/font> main(<font face=serif color=green size=4>int<\/font> argc, <font face=serif color=green size=4>char<\/font> **argv)<\/b><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif color=green size=3>int<\/font> listenfd, connfd;<\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><font face=serif color=#198a8a size=3>\/*listenfd<\/font><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><font color=#198a8a>\uc640 <\/font><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><font face=serif color=#198a8a size=3>connfd <\/font><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><font color=#198a8a>\ub77c\ub294 \uc815\uc218\ud615 \ubcc0\uc218 <\/font><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><font face=serif color=#198a8a size=3>(<\/font><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><font color=#198a8a>\ub514\uc2a4\ud06c\ub9bd\ud130\ub85c \uc0ac\uc6a9\ub428<\/font><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><font face=serif color=#198a8a size=3>) <\/font><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><font color=#198a8a>\uc120\uc5b8 <\/font><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><font face=serif color=#198a8a size=3>*\/<\/font><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>pid_t childpid;<\/font><\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><font face=serif color=#198a8a size=3>\/*pid_t <\/font><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><font color=#198a8a>\ub77c\ub294 \ud0c0\uc785\uc758 \uc790\uc2dd \ud504\ub85c\uc138\uc11c\uc758 \ud504\ub85c\uc138\uc11c <\/font><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><font face=serif color=#198a8a size=3>ID<\/font><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><font color=#198a8a>\ub97c \ub2f4\ub294 \ubcc0\uc218 <\/font><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><font face=serif color=#198a8a size=3>childpid <\/font><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><font color=#198a8a>\uc120\uc5b8<\/font><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><font face=serif color=#198a8a size=3>*\/<\/font><\/span><\/span><\/span><\/p>\n<ul>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\">\ub370\uc774\ud130 \ud0c0\uc785 <span lang=en-US><span lang=en-US><font face=serif size=3>: pid_t<\/font><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><font face=serif size=3>pid_t <\/font><\/span><\/span>\ub370\uc774\ud130 \ud0c0\uc785\uc740 \ud504\ub85c\uc138\uc2a4 <span lang=en-US><span lang=en-US><font face=serif size=3>Id<\/font><\/span><\/span>\ub97c \ud45c\ud604\ud558\ub294 \ubd80\ud638\ud654 \uc815\uc218 \ud0c0\uc785\uc774\ub2e4<span lang=en-US><span lang=en-US><font face=serif size=3>. <\/font><\/span><\/span>\uc774\ub97c \uc0ac\uc6a9\ud558\uae30 \uc704\ud574\uc11c\ub294 \u2018<span lang=en-US><span lang=en-US><font face=serif size=3>unistd.h\u2019<\/font><\/span><\/span>\uc640 \u2018<span lang=en-US><span lang=en-US><font face=serif size=3>sys\/types.h\u2019<\/font><\/span><\/span>\ud5e4\ub354\ub97c \ud3ec\ud568 \ud574\uc57c \ud55c\ub2e4<span lang=en-US><span lang=en-US><font face=serif size=3>.<\/font><\/span><\/span><\/p>\n<\/li>\n<\/ul>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>socklen_t clilen;<\/font><\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><font face=serif color=#198a8a size=3>\/*<\/font><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><font color=#198a8a>\uc5f0\uacb0\uc815\ubcf4\uc758 \uae38\uc774\ub97c \ub2f4\uc744 \ubcc0\uc218 <\/font><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><font face=serif color=#198a8a size=3>clilen <\/font><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><font color=#198a8a>\uc120\uc5b8<\/font><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><font face=serif color=#198a8a size=3>*\/<\/font><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif color=#dc2300 size=3>struct<\/font> sockaddr_in cliaddr, servaddr;<\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><font face=serif color=#198a8a size=3>\/*<\/font><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><font color=#198a8a>\ud074\ub77c\uc774\uc5b8\ud2b8\uc640 \uc11c\ubc84\uc758 \uc8fc\uc18c\ub97c \ub2f4\uc744 \uad6c\uc870\uccb4 <\/font><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><font face=serif color=#198a8a size=3>*\/<\/font><\/span><\/span><\/span><\/p>\n<ul>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><font face=serif color=#dc2300 size=3>struct<\/font> sockaddr_in<\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\">\uc18c\ucf13\uc5d0 \uc5f0\uacb0\ud560 \ud638\uc2a4\ud2b8\uc758 \uc8fc\uc18c\uc640 \uad00\uacc4\ub41c \uc815\ubcf4\ub97c \uc800\uc7a5\ud558\ub294 \uad6c\uc870\uccb4 <\/p>\n<ul>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><font face=serif size=3>sockaddr_in<\/font><\/span><\/span>\uc758 \uad6c\uc870<\/p>\n<\/li>\n<\/ul>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><font face=serif color=#dc2300 size=3>struct<\/font> sockaddr_in{ <\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><font face=serif size=3>short sin_family; \/\/ <\/font><\/span><\/span>\ud504\ub85c\ud1a0\ucf5c\uc758 \uc8fc\uc18c \uccb4\uacc4<span lang=en-US><span lang=en-US><font face=serif size=3>(<\/font><\/span><\/span>\uac70\uc758 \ub300\ubd80\ubd84 <span lang=en-US><span lang=en-US><font face=serif size=3>AF_INET) <\/font><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><font face=serif size=3>unsigned short sin_port; \/\/<\/font><\/span><\/span>\ud638\uc2a4\ud2b8\uc758 <span lang=en-US><span lang=en-US><font face=serif size=3>IP <\/font><\/span><\/span>\ud3ec\ud2b8 <\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><font face=serif color=#dc2300 size=3>struct<\/font> in_addr sin_addr; \/\/<\/span><\/span>\ud638\uc2a4\ud2b8\uc758 <span lang=en-US><span lang=en-US><font face=serif size=3>IP <\/font><\/span><\/span>\uc8fc\uc18c <\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><font face=serif color=green size=3>char<\/font> sin_zero[8]; \/\/<\/span><\/span>\uc0ac\uc6a9\ub418\uc9c0 \uc54a\uc74c <\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><font face=serif size=3>}; *\/<\/font><\/span><\/p>\n<\/li>\n<\/ul>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>listenfd = socket (AF_INET, SOCK_STREAM, 0);<\/font><\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/*<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\ud1b5\uc2e0\uc744 \uc704\ud55c \uc18c\ucf13 \uc0dd\uc131<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<ul>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><font face=serif size=3>socket( )<\/font><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span><font face=serif size=3>socket <\/font><\/span><\/span><\/span><span>\ud568\uc218\ub294 \uc18c\ucf13\uc744 \ub9cc\ub4e4\uace0 \uc18c\ucf13 \uae30\uc220\uc790 <\/span><span lang=en-US><span lang=en-US><span><font face=serif size=3>(descriptor)<\/font><\/span><\/span><\/span><span>\ub97c \uc5b4\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \ubc18\ud658 \ud558\ub294 \ud568\uc218 \uc785\ub2c8\ub2e4<\/span><span lang=en-US><span lang=en-US><span><font face=serif size=3>.<\/font><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><font face=serif size=3>socket (<\/font><\/span><\/p>\n<ul>\n<ul>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span><font face=serif color=green size=3>int<\/font> af, \/\/<\/span><\/span><\/span><span>\uc5b4\ub4dc\ub808\uc2a4 \uccb4\uacc4\ub97c \uacb0\uc815<\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span><font face=serif color=green size=3>int<\/font> type, \/\/<\/span><\/span><\/span><span>\uc18c\ucf13\uc758 \ud0c0\uc785\uc744 \uacb0\uc815<\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span><font face=serif color=green size=3>int<\/font> protocol \/\/<\/span><\/span><\/span><span>\uc18c\ucf13\uacfc \ud568\uaed8 \uc5b4\ub290 \ud504\ub85c\ud1a0\ucf5c\uc774 \uc0ac\uc6a9\ub420 \uac83\uc778\uc9c0 \uc9c0\uc815<\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><font face=serif size=3>);<\/font><\/span><\/p>\n<\/ul>\n<\/ul>\n<\/li>\n<\/ul>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>memset (&amp;servaddr, 0, <\/font><font face=serif color=#dc2300 size=3>sizeof<\/font><font face=serif size=3>(servaddr));<\/font><\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/*<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uad6c\uc870\uccb4 <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>servaddr<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc758 \ucd08\uae30\ud654<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>servaddr.sin_family = AF_INET;<\/font><\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/*<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc11c\ubc84\uc758 \uc8fc\uc18c \uccb4\uacc4\ub294 <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>AF_INET*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>servaddr.sin_addr.s_addr = htonl(INADDR_ANY);<\/font><\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/* <\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc11c\ubc84\uc758 \uc8fc\uc18c <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>(<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc2e4\ud589\ud558\ub294 \uc11c\ubc84\uc758 \uc8fc\uc18c<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>) *\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<ul>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><font face=serif size=3>htonl<\/font><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span><font face=serif size=3>32<\/font><\/span><\/span><\/span><span>\ube44\ud2b8 \ud638\uc2a4\ud2b8 \ubc14\uc774\ud2b8 \uc624\ub354 \u2192 <\/span><span lang=en-US><span lang=en-US><span><font face=serif size=3>TCP\/IP<\/font><\/span><\/span><\/span><span>\uc5d0\uc11c \uc0ac\uc6a9\ub418\ub294 \ub124\ud2b8\uc6cd \ubc14\uc774\ud2b8 \uc624\ub354\ub85c \ubcc0\ud658<\/span><\/p>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><font face=serif size=3>INADDR_ANY<\/font><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span>\uc11c\ubc84\uac00 \uc5ec\ub7ec\uac1c\uc758 <\/span><span lang=en-US><span lang=en-US><span><font face=serif size=3>IP<\/font><\/span><\/span><\/span><span>\uc8fc\uc18c\ub97c \uac00\uc9c0\uace0 \uc788\uc744\ub54c \uadf8\uc911 \uc5b4\ub5a4 \uc8fc\uc18c\ub77c\ub3c4 \ud5c8\uc6a9 \ud55c\ub2e4<\/span><span lang=en-US><span lang=en-US><span><font face=serif size=3>.<\/font><\/span><\/span><\/span><\/p>\n<\/li>\n<\/ul>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>servaddr.sin_port = htons(SERV_PORT);<\/font><\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/*port <\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\ubc88\ud638 \uc9c0\uc815 <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>SERV_PORT<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\ub294 \uc55e\ubd80\ubd84\uc5d0\uc11c <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>#define SERV_PORT 9877 *\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/ul>\n<p style=\"MARGIN-BOTTOM: 0cm\"><\/p>\n<ul>\n<ul>\n<ul>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>bind(listenfd, (<\/font><font face=serif color=#dc2300 size=3>struct<\/font> sockaddr_in *) &amp;servaddr, <font face=serif color=#dc2300 size=3>sizeof<\/font> (servaddr));<\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/* <\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc18c\ucf13\uc744 <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>IP<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc640 <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>Port<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\ub85c \ubc14\uc778\ub4dc \uc2dc\ud0a4\uace0 \uc11c\ubc84\uc758 \uc815\ubcf4\uc640 \uc5f0\uacb0 \ud55c\ub2e4<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>, <\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc774 \uacfc\uc815 \ud6c4\uc5d0 <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>servaddr<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc740 \ud1b5\uc2e0 \uac00\ub2a5\ud55c \uc18c\ucf13\uc774 \ub41c\ub2e4<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>.*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>listen(listenfd, 10);<\/font><\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/*<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc0dd\uc131\ub41c \uc18c\ucf13\uc73c\ub85c \ubd80\ud130 \uc678\ubd80\uc758 \uc811\uc18d\uc744 \uac10\uc9c0\ud558\uace0 \ucd5c\ub300 \ud050\uc758 \uae38\uc774\ub294 <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>10*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<ul>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><font face=serif size=3>listen( )<\/font><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span><font face=serif size=3>listen <\/font><\/span><\/span><\/span><span>\ud568\uc218\ub294 \uc678\ubd80\ub85c \ubd80\ud130 \ub4e4\uc5b4\uc624\ub294 \uc811\uc18d\uc744 \uac10\uc9c0\ud558\uae30 \uc704\ud574 \ud2b9\uc815 \uc18c\ucf13\uc774 \uc0ac\uc6a9\ub420 \uac83\uc784\uc744 \uc54c\ub9b0\ub2e4<\/span><span lang=en-US><span lang=en-US><span><font face=serif size=3>.<\/font><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><font face=serif color=green size=3>int<\/font> listen(<\/span><\/p>\n<ul>\n<ul>\n<ul>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><font face=serif size=3>SOCKET s,<\/font><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><font face=serif color=green size=3>int<\/font> backlog<\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><font face=serif size=3>);<\/font><\/span><\/p>\n<\/ul>\n<\/ul>\n<\/ul>\n<\/li>\n<\/ul>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><b><font face=serif color=#dc2300 size=3>for<\/font><font face=serif size=3>( : : ) {<\/font><\/b><span> <\/span><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/*<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\ubb34\ud55c \ub8e8\ud504 \uc2dc\uc791<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<ul>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>clilen = <\/font><font face=serif color=#dc2300 size=3>sizeof<\/font><font face=serif size=3>(cliaddr); <\/font><\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/*clilen<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc5d0 \uae38\uc774 \uc815\ubcf4\ub97c \uc90c<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>connfd = accept(listenfd, (<\/font><font face=serif color=#dc2300 size=3>struct<\/font> sockaddr_in *) &amp;cliaddr, &amp;clilen);<\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/*<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc18c\ucf13\uc73c\ub85c \ub4e4\uc5b4\uc624\ub294 \uc811\uc18d \uc694\uccad\uc744 \ud5c8\uc6a9<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><font face=serif size=3>accept( )<\/font><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span><font face=serif size=3>accept <\/font><\/span><\/span><\/span><span>\ud568\uc218\ub294 \uc18c\ucf13\uc73c\ub85c \ub4e4\uc5b4\uc624\ub294 \uc811\uc18d \uc694\uccad\uc744 \ud5c8\uc6a9\ud558\ub294 \ud568\uc218\uc774\ub2e4<\/span><span lang=en-US><span lang=en-US><span><font face=serif size=3>.<\/font><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><font face=serif size=3>SOCKET accept(<\/font><\/span><\/p>\n<ul>\n<ul>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span><font face=serif size=3>SOCKET s, \/\/listen( )<\/font><\/span><\/span><\/span><span>\uc5d0 \uc758\ud574 \uc811\uc18d \ub300\uae30\ud558\uace0 \uc788\ub294 \uc18c\ucf13\uc758 \ub514\uc2a4\ud06c\ub9bd\ud130<\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span><font face=serif color=#dc2300 size=3>struct<\/font> sockaddr FAR* addr, \/\/<\/span><\/span><\/span><span>\ud074\ub77c\uc774\uc5b8\ud2b8\uc758 \uc8fc\uc18c<\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span><font face=serif color=green size=3>int<\/font> FAR* addrlen \/\/addr <\/span><\/span><\/span><span>\ub9e4\uac1c\ubcc0\uc218\uc5d0 \uc758\ud574 \ud3ec\uc778\ud2b8\ub41c \ubc84\ud37c\uc758 \uae38\uc774<\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><font face=serif size=3>);<\/font><\/span><\/p>\n<\/ul>\n<\/ul>\n<\/li>\n<\/ul>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif color=#dc2300 size=3>if<\/font> ( (childpid = fork() ) == 0) {<\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/* <\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc790\uc2dd \ud504\ub85c\uc138\uc11c\ub97c \ub9cc\ub4e4\uace0 \uadf8\uac83\uc73c\ub85c \uc791\ub3d9\ud55c\ub2e4<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>. *\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<ul>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><font face=serif size=3>fork( )<\/font><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span><font face=serif size=3>fork( )<\/font><\/span><\/span><\/span><span>\ub294 \ud504\ub85c\uc138\uc11c\ub97c \uc774\ub984\ub9cc \ub2e4\ub978 \ud558\ub098\uc758 \ud504\ub85c\uc138\uc11c\ub85c \ubcf5\uc0ac \uc2dc\ud0a8\ub2e4<\/span><span lang=en-US><span lang=en-US><span><font face=serif size=3>.<\/font><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span>\ud754\ud788 \ucc98\uc74c\uc758 \ud504\ub85c\uc138\uc2a4\ub97c \ubd80\ubaa8 \ud504\ub85c\uc138\uc11c\ub77c\ud558\uace0 \ubcf5\uc0ac\ub41c \ud504\ub85c\uc138\uc11c\ub97c \uc790\uc2dd \ud504\ub85c\uc138\uc11c\ub77c \ud55c\ub2e4<\/span><span lang=en-US><span lang=en-US><span><font face=serif size=3>. <\/font><\/span><\/span><\/span><span>\uc774 \ud504\ub85c\uadf8\ub7a8\uc740 \uc774\ubc29\ubc95\uc73c\ub85c \ub2e4\uc911 \uc811\uc18d\uc744 \ucc98\ub9ac \ud560\uc218 \uc788\ub2e4<\/span><span lang=en-US><span lang=en-US><span><font face=serif size=3>.<\/font><\/span><\/span><\/span><\/p>\n<\/li>\n<\/ul>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>close(listenfd);<\/font><\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/* listenfd <\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\ub514\uc2a4\ud06c\ub9bd\ud130\ub97c \ub2eb\ub294\ub2e4<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>. *\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>str_echo(connfd);<\/font><\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/*str_echo<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\ud568\uc218\ub97c \ud638\ucd9c\ud55c\ub2e4<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>.*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>exit(0);<\/font><\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/*<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\ud504\ub85c\uadf8\ub7a8\uc744 \uc885\ub8cc\ud55c\ub2e4<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>.*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><b><font face=serif size=3>}<\/font><\/b> <span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/*if<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\ubb38 \uc885\ub8cc<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>close(connfd);<\/font><\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/*connfd <\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\ub514\uc2a4\ud06c\ub9bd\ud130\ub97c \ub2eb\ub294\ub2e4<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>.*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><b><font face=serif size=3>}<\/font><\/b> <span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/*for<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\ubb38 \uc885\ub8cc<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><b><font size=4>\uc5d0\ucf54 \ud568\uc218 \u2013 <\/font><\/b><span lang=en-US><span lang=en-US><b><font face=serif size=4>str_echo( <\/font><font face=serif color=green size=4>int<\/font> sockfd )<\/b><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>ssize_t n;<\/font><\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/* signed int <\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\ud0c0\uc785 <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>n <\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc120\uc5b8 <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif color=green size=3>char<\/font> buf[MAXLINE];<\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/* <\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\ubc84\ud37c \ubc30\uc5f4 \uc0dd\uc131 <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>( #define MAXLINE 2000 ) *\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>again:<\/font><\/b><font face=serif size=3> <\/font><span style=\"FONT-STYLE: normal\"><font face=serif color=#198a8a size=3>\/* goto *\/<\/font><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>while((n=read(sockfd, buf, MAXLINE)) &gt; 0)<\/font><\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/*<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc18c\ucf13\uc73c\ub85c \ub4e4\uc5b4\uc628 \ub0b4\uc6a9\uc744 \ubc84\ud37c\uc5d0 \uc800\uc7a5\ud558\uace0 \uadf8 \uae38\uc774\ub97c <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>n<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc5d0 \ub123\ub294\ub2e4 \uadf8\ub9ac\uace0 \uadf8 \uac12\uc774 <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>0<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\ubcf4\ub2e4 \ud074 \ub3d9\uc548<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>write(sockfd, buf, n);<\/font><\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/*<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\ubc84\ud37c\uc758 \ub0b4\uc6a9\uc744 \uc18c\ucf13\uc5d0 \uc4f4\ub2e4<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>(<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc804\uc1a1<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>)*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif color=#dc2300 size=3>if<\/font> ( n &lt; 0 &amp;&amp; errno == EINTR)<\/b><\/span><\/p>\n<ul>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>goto again:<\/font><\/b><\/span><\/p>\n<\/ul>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/*read<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uac00 <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>-1<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc744 \ubc18\ud658\ud558\uace0 <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>(0<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\ubcf4\ub2e4 \uc791\uc74c<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>), errno<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uac00 <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>EINTR<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc77c\ub54c<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>(<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc778\ud130\ub7fd\ud2b8 \uc5d0\ub7ec<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>) goto again<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc73c\ub85c \ub3cc\uc544\uac04\ub2e4<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>.*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif color=#dc2300 size=3>else<\/font> <font face=serif color=#dc2300 size=3>if<\/font> (n &lt; 0) {<\/b><\/span><\/p>\n<ul>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>printf(\u201cstr_echo : read error\u201d);<\/font><\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>exit(0); }<\/font><\/b><\/span><\/p>\n<\/ul>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/*read<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uac00 <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>-1<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc744 \ubc18\ud658 \ud588\uc744\ub54c <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>(Error <\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc0c1\ud669<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>) <\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc624\ub958 \uba54\uc2dc\uc9c0\ub97c \ucd9c\ub825\ud558\uace0 \ud504\ub85c\uadf8\ub7a8\uc744 \uc885\ub8cc<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<\/li>\n<\/ul>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif color=#cc6633 size=4>tclcli.c<\/font><\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span><font face=serif size=3>(tcpserv<\/font><\/span><\/span><\/span><span>\uc640 \uc911\ubcf5\ub418\ub294 \ud568\uc218\uac00 \ub9ce\uace0 \uc774 \ubd80\ubd84\uc740 \uac04\ub7b5\ud788 \ub2e4\ub8ec\ub2e4<\/span><span lang=en-US><span lang=en-US><span><font face=serif size=3>)<\/font><\/span><\/span><\/span><\/p>\n<ul>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><b><font size=4>\uba54\uc778 \ud568\uc218 \u2013 <\/font><\/b><span lang=en-US><span lang=en-US><b><font face=serif color=green size=4>int<\/font> main(<font face=serif color=green size=4>int<\/font> argc, <font face=serif color=green size=4>char<\/font> **argv)<\/b><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif color=green size=3>int<\/font> sockfd;<\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/* <\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\ub514\uc2a4\ud06c\ub9bd\ud130 \uc0ac\uc6a9\ub420 \ubcc0\uc218 \uc120\uc5b8 <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif color=#dc2300 size=3>struct<\/font> sockaddr_in servaddr;<\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/* <\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc11c\ubc84\uc758 \uc8fc\uc18c\ub97c \ub2f4\uc744 \uad6c\uc870\uccb4 <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif color=#dc2300 size=3>if<\/font> (argc != 2)<\/b><\/span><\/p>\n<ul>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>printf(\u201cusage: tcpcli &lt;IP address&gt;\u201d);<\/font><\/b><\/span><\/p>\n<\/ul>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/* <\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc2e4\ud589 \ubc29\ubc95\uc774 \ud2c0\ub838\uc744 \uacbd\uc6b0 \uc548\ub0b4 \uba54\uc2dc\uc9c0 \ucd9c\ub825 <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>( <\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc774 \ubd80\ubd84\uc740 \uc798\ubabb\ub41c \ubd80\ubd84\uc774\uace0 \ub4a4\uc5d0\uc11c \uc218\uc815 \ud558\ub3c4\ub85d \ud558\uaca0\ub2e4<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>.)*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><b><font face=serif size=3>sockfd = socket(AF_INET, SOCK_STREAM, 0); <\/font><\/b><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/*<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc18c\ucf13 \uc0dd\uc131<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><b><font face=serif size=3>memset(&amp;servaddr, 0, <\/font><font face=serif color=#dc2300 size=3>sizeof<\/font><font face=serif size=3>(servaddr));<\/font><\/b><span> <\/span><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/*servaddr <\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\ucd08\uae30\ud654<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><b><font face=serif size=3>servaddr.sin_family = AF_INET;<\/font><\/b><span> <\/span><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/*<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc8fc\uc18c \uccb4\uacc4\ub294 <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>AP_INET*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>servaddr.sin_port = htons(SERV_PORT);<\/font><\/b><font face=serif size=3> <\/font><span style=\"FONT-STYLE: normal\"><font face=serif color=#198a8a size=3>\/*port (define 9877) *\/<\/font><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><b><font face=serif size=3>inet_pton(AF_INET, argv[1], &amp;servaddr.sin_addr); <\/font><\/b><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/*<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc8fc\uc18c\ub294 \uc785\ub825\ud55c \uac12<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>connect(sockfd, (<\/font><font face=serif color=#dc2300 size=3>struct<\/font> sockaddr_in*) &amp;servaddr, <font face=serif color=#dc2300 size=3>sizeof<\/font><font face=serif size=3>(servaddr));<\/font><\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/* <\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc785\ub825\ud55c \uc815\ubcf4\ub85c \uc11c\ubc84\uc5d0 \uc811\uc18d\ud558\uace0 \ud1b5\uc2e0 \uac00\ub2a5\ud55c \uc18c\ucf13\uc774 \ub41c\ub2e4<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>. *\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>str_cli(stdin, sockfd);<\/font><\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/* str_cli <\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\ud568\uc218 \ud638\ucd9c <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>(<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc785\ub825\uacfc \ub514\uc2a4\ud06c\ub9bd\ud130\ub97c \ub118\uae34\ub2e4<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>)*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<ul>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><font face=serif size=3>stdin<\/font><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span>\ud45c\uc900 \uc785\ucd9c\ub825 \uc7a5\uce58\uc758 \ud30c\uc77c \ud3ec\uc778\ud130\ub85c \uae30\ubcf8\uc801\uc73c\ub85c \ud0a4\ubcf4\ub4dc\uc785\ub825\uc73c\ub85c \ub418\uc5b4 \uc788\ub2e4<\/span><span lang=en-US><span lang=en-US><span><font face=serif size=3>.<\/font><\/span><\/span><\/span><\/p>\n<\/li>\n<\/ul>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><b><font size=4>\ubb38\uc790\uc5f4 \ubcf4\ub0b4\uae30<\/font><\/b><span lang=en-US><span lang=en-US><b><font face=serif size=4>, <\/font><\/b><\/span><\/span><b><font size=4>\ubc1b\uae30 \ud568\uc218 \u2013 <\/font><\/b><span lang=en-US><span lang=en-US><b><font face=serif size=4>str_cli(FILE *fp, <\/font><font face=serif color=green size=4>int<\/font> sockfd)<\/b><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif color=green size=3>char<\/font> sendline[MAXLINE] , recvline[MAXLINE];<\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/* <\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\ubb38\uc790\uc5f4\uc744 \ubcf4\ub0b4\uace0 \ubc1b\uae30 \uc704\ud55c \ubc84\ud37c \ubc30\uc5f4 \uc0dd\uc131<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>while(fgets(sendline, MAXLINE, fp) != NULL) {<\/font><\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/*<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc785\ub825\ud55c \uac12\uc744 \ucd5c\ub300 <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>MAXLINE<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc774\ud558\ub85c \ubcf4\ub0b4\uae30 \ubc84\ud37c <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>sendline[]<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc5d0 \ub123\uace0 \uc785\ub825\ud55c \uac12\uc774 \uc5c6\uc744\ub54c \uae4c\uc9c0 \ubc18\ubcf5\ud55c\ub2e4<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>.*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>write(sockfd, sendline, strlen(sendline));<\/font><\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/* <\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc18c\ucf13\uc5d0 \ubcf4\ub0b4\uae30 \ubc84\ud37c\uc758 \ub0b4\uc6a9\uc744 \uc4f4\ub2e4<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>(<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc804\uc1a1\ud55c\ub2e4<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>) *\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif color=#dc2300 size=3>if<\/font> (read(sockfd, recvline, MAXLINE) ==0){<\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/* <\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc18c\ucf13\uc73c\ub85c \ubd80\ud130 \ub4e4\uc5b4\uc628 \ub370\uc774\ud130\ub97c \ubc1b\uae30 \ubc84\ud37c\uc5d0 <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>MAXLINE<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc774\ud558\ub85c \uc800\uc7a5\ud558\uace0 <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>0<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc744 \ub9ac\ud134\ud558\uba74 <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>(<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc544\ubb34\uac83\ub3c4 \uc5c6\uc744\ub54c \u2013 \uc11c\ubc84\uc5d0\uc11c \uc544\ubb34 \uc751\ub2f5\uc774 \uc5c6\ub2e4<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>) if<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\ubb38 \uc548\uc758 \uba85\ub839\ub3d9\uc791<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>printf(\u201cstr_cli: server terminated permaturelyn\u201d);<\/font><\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>exit(0); }<\/font><\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/* <\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc11c\ubc84\uc640 \uc5f0\uacb0\uc774 \ub048\uc5b4\uc84c\ub2e4\ub294 \uba54\uc2dc\uc9c0\uc640 \ud568\uaed8 \ud504\ub85c\uadf8\ub7a8 \uc885\ub8cc <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>(<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\uc5ec\uae30\uae4c\uc9c0 \uc11c\ubc84\uc5d0 \uc751\ub2f5\uc774 \uc5c6\uc744\ub54c\uc758 \ub3d9\uc791<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>) *\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>fputs(recvline, stdout);<\/font><\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/*<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\ubc84\ud37c\uc758 \ub0b4\uc6a9\uc744 \ud654\uba74\uc73c\ub85c \ucd9c\ub825 \ud55c\ub2e4<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>.*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><b><font face=serif size=3>} }<\/font><\/b> <span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/*while<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\ubb38 \uc885\ub8cc<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>, str_cli<\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\ud568\uc218 \uc885\ub8cc<\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/ul>\n<ol start=5>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><b><font size=4>\uc624\ub958 \uc218\uc815 \ubc0f \uac1c\uc120<\/font><\/b><\/p>\n<ul>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm; FONT-STYLE: normal\"><b>\ud074\ub77c\uc774\uc5b8\ud2b8 \ud504\ub85c\uadf8\ub7a8 \uc2e4\ud589\uc2dc \uc2e4\ud589 \uba85\ub839 \ud615\uc2dd\uc774 \ud2c0\ub9b0 \uacbd\uc6b0 \uc138\uadf8\uba3c\ud2b8 \uc624\ub958\uac00 \ubc1c\uc0dd<\/b><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\">\u2192 \uc624\ub958\ub97c \uac80\ucd9c\ud55c \ub2e4\uc74c \ud504\ub85c\uadf8\ub7a8\uc744 \uc885\ub8cc \uc2dc\ud0a4\uc9c0 \uc54a\ub294\ub370\uc11c \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud55c\ub2e4<span lang=en-US><span lang=en-US><font face=serif size=3>.<\/font><\/span><\/span><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<ol>\n<ul>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif color=#dc2300 size=3>if<\/font><font face=serif size=3>(argc != 2) <\/font><\/b><\/span><\/p>\n<\/ul>\n<\/ol>\n<ol>\n<ul>\n<ol>\n<ol>\n<ol>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>printf(&#8220;usage: tcpcli &lt;IP address&gt;&#8221;);<\/font><\/b><\/span><\/p>\n<\/ol>\n<\/ol>\n<\/ol>\n<p style=\"MARGIN-BOTTOM: 0cm\">\uc774 \ubd80\ubd84\uc774 \uc798\ubabb \ub418\uc5c8\ub2e4<span lang=en-US><span lang=en-US><font face=serif size=3>. argc != 2<\/font><\/span><\/span>\ub97c \uccb4\ud06c\ud558\uace0 \uc798\ubabb \ub418\uc5c8\uc744 \uacbd\uc6b0 \uc548\ub0b4\uba54\uc2dc\uc9c0\ub97c \ucd9c\ub825\ud558\ub294\ub370 \uc885\ub8cc\ud558\ub294 \ubd80\ubd84\uc774 \ube60\uc838\uc11c \uc798\ubabb\ub41c \uc815\ubcf4\ub85c \uba85\ub839\uc774 \uacc4\uc18d \ub418\uba74\uc11c \uc624\ub958\uac00 \ubc1c\uc0dd\ud55c\ub2e4<span lang=en-US><span lang=en-US><font face=serif size=3>. <\/font><\/span><\/span>\ub2e4\uc74c\uacfc \uac19\uc774 <span lang=en-US><span lang=en-US><font face=serif size=3>if<\/font><\/span><\/span>\ubb38\uc744 \uc218\uc815 \ud568\uc73c\ub85c\uc368 \ud574\uacb0 \ud560\uc218 \uc788\ub2e4<span lang=en-US><span lang=en-US><font face=serif size=3>.<\/font><\/span><\/span><\/p>\n<\/ul>\n<\/ol>\n<ol>\n<ul>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif color=#dc2300 size=3>if<\/font><font face=serif size=3>(argc !=2){<\/font><\/b><\/span><\/p>\n<\/ul>\n<\/ol>\n<ol>\n<ul>\n<ol>\n<ol>\n<ol>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>printf(\u201cusage: &lt;Program Name&gt; &lt;IP address&gt;n\u201d);<\/font><\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>exit(0);<\/font><\/b><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><b><font face=serif size=3>}<\/font><\/b><\/span><\/p>\n<\/ol>\n<\/ol>\n<\/ol>\n<li>\n<p style=\"MARGIN-BOTTOM: 0cm\"><b>\uae34\ubb38\uc7a5\uc744 \uc785\ub825\ud55c\ub4a4 \uc9e7\uc740 \ubb38\uc7a5\uc744 \uc785\ub825\ud558\uba74 \uae34\ubb38\uc7a5\uc758 \ub4b7\ubd80\ubd84\uc774 \uac19\uc774 \ucd9c\ub825 \ub418\ub294 \ud604\uc0c1<\/b><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\">\u2192 \ud074\ub77c\uc774\uc5b8\ud2b8\uce21\uc758 \ubc84\ud37c<span lang=en-US><span lang=en-US><font face=serif size=3>( recvline[MAXLINE] )<\/font><\/span><\/span>\uc744 \ud074\ub9ac\uc5b4\ud558\uc9c0 \uc54a\ub294\ub370\uc11c \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud55c\ub2e4<span lang=en-US><span lang=en-US><font face=serif size=3>. <\/font><\/span><\/span>\ub370\uc774\ud130\ub97c \uc804\uc1a1\ud55c\ub4a4\uc5d0\ub294 \ubc84\ud37c\ub97c \ube44\uc6cc \uc8fc\uc5b4\uc57c \ud558\ub294\ub370 \ud074\ub9ac\uc5b4\ud558\ub294 \uacfc\uc815\uc774 \ube60\uc838 \uc788\ub2e4<span lang=en-US><span lang=en-US><font face=serif size=3>.<\/font><\/span><\/span><\/p>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><b><font face=serif size=3>fputs(recvline, stdout);<\/font><\/b> <\/span><\/span>\ubc14\ub85c \ub2e4\uc74c\uc904\uc5d0 \ub2e4\uc74c\uc744 \ucd94\uac00 \ud568 \uc73c\ub85c\uc368 \ud574\uacb0 \ud560 \uc218 \uc788\ub2e4<span lang=en-US><span lang=en-US><font face=serif size=3>.<\/font><\/span><\/span><\/p>\n<\/li>\n<\/ul>\n<\/ol>\n<ol>\n<ul>\n<p style=\"MARGIN-BOTTOM: 0cm\"><span lang=en-US><span lang=en-US><b><font face=serif size=3>memset(&amp;recvline ,0,sizeof(recvline)); <\/font><\/b><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>\/* <\/font><\/span><\/span><\/span><\/span><span style=\"FONT-STYLE: normal\"><span><font color=#198a8a>\ubcf4\ub0b4\uae30\ubc84\ud37c\ub97c \ud074\ub9ac\uc5b4 \ud55c\ub2e4 <\/font><\/span><\/span><span lang=en-US><span lang=en-US><span style=\"FONT-STYLE: normal\"><span><font face=serif color=#198a8a size=3>*\/<\/font><\/span><\/span><\/span><\/span><\/p>\n<\/ul>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Server \u2013 Client Echo program source \ubd84\uc11d \ubaa9\ucc28 \ud504\ub85c\uadf8\ub7a8\uc758 \uae30\ub2a5\uacfc \ub3d9\uc791 \uc18c\uac1c \uc6d0\ubcf8 Source Source \ubd84\uc11d \uc791\ub3d9 \ub2e4\uc774\uc5b4\uadf8\ub7a8 \uc624\ub958 \uc218\uc815 \ubc0f \uac1c\uc120 \ud504\ub85c\uadf8\ub7a8\uc758 \uae30\ub2a5\uacfc \ub3d9\uc791 \uc18c\uac1c \uc774 Linux\uc6a9 Network Echo program\uc740 tcpserv.c , tclcli.c \ub450\uac1c\uc758 \uc18c\uc2a4\ud30c\uc77c\ub85c \ub418\uc5b4 \uc788\uc73c\uba70 Server\uac00 \ub418\uace0\uc790 \ud558\ub294 \ucabd\uc5d0\uc11c\ub294 tcpserv.c\ub97c \ucef4\ud30c\uc77c \ud558\uc5ec \uc0ac\uc6a9 \ud558\uace0 Client\uac00 \ub418\uace0\uc790 \ud558\ub294 \ucabd\uc5d0\uc11c\ub294 tclcli.c\ub97c \ucef4\ud30c\uc77c \ud558\uc5ec \uc0ac\uc6a9 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":""},"categories":[23],"tags":[176,479,234],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pXV5a-zG","_links":{"self":[{"href":"https:\/\/talsu.net\/index.php?rest_route=\/wp\/v2\/posts\/2212"}],"collection":[{"href":"https:\/\/talsu.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/talsu.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/talsu.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/talsu.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2212"}],"version-history":[{"count":0,"href":"https:\/\/talsu.net\/index.php?rest_route=\/wp\/v2\/posts\/2212\/revisions"}],"wp:attachment":[{"href":"https:\/\/talsu.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2212"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/talsu.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2212"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/talsu.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2212"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}