Newsgroups: fj.questions.unix,fj.lang.perl,fj.lang.c,fj.net.programming
Path: galaxy.trc.rwcp.or.jp!coconuts.jaist!wnoc-tyo-news!news.u-tokyo.ac.jp!newssinet!hakata!ie.u-ryukyu.ac.jp!yas
From: yas@ocean.ie.u-ryukyu.ac.jp (Yasushi Shinjo)
Subject: stream and sized_io library (Re: [Q] Communication via socket)
In-Reply-To: ozawa@prince.pe.u-tokyo.ac.jp's message of 15 May 1995 10:06:22 GMT
X-Nntp-Posting-Host: top
Message-ID: <YAS.95May18205515@top.ie.u-ryukyu.ac.jp>
Followup-To: fj.net.programming
Lines: 97
Sender: news@spn.ie.u-ryukyu.ac.jp (News System Admin)
Organization: Dept. of Elect. & Info. Eng., Univ. of the Ryukyus, Okinawa,
	Japan
References: <OZAWA.95May15191120@rose.pe.u-tokyo.ac.jp>
Date: Thu, 18 May 1995 11:55:15 GMT
Xref: galaxy.trc.rwcp.or.jp fj.questions.unix:3138 fj.lang.perl:151 fj.lang.c:1869 fj.net.programming:19
X-originally-archived-at: http://galaxy.rwcp.or.jp/text/cgi-bin/newsarticle2?ng=fj.lang.perl&nb=151&hd=a
X-reformat-date: Mon, 18 Oct 2004 15:18:22 +0900
X-reformat-comment: Tabs were expanded into 4 column tabstops by the Galaxy's archiver. See http://katsu.watanabe.name/ancientfj/galaxy-format.html for more info.

$B?7>k!wN05eBg3X>pJs$G$9!#$3$s$K$A$O!#(B
$B$3$N4V$+$iC5$7$F$$$?$b$N$,!"$d$C$H$G$F$-$^$7$?!#(B

TCP/IP $B$N$G%W%m%0%i%`$r:n$k;~$K$O!"(Bsocket(), bind() $B$J$I$rD>(B
$B@\;H$C$F$O$$$1$^$;$s!#$3$N(B stream(3) $B$H$+(B sized_io $B$H8F$P$l(B
$B$F$$$k%W%m%0%i%`$r;H$$$^$7$g$&!#$^$:!"(BTCP/IP $B$KBP$9$k%$%s%?(B
$B%U%'!<%9$,!"$^$H$b$G!";H$$$d$9$/!"J,$+$j$d$9$$$G$9!#<!$N#4$D(B
$B$r3P$($k$@$1$G$9!#(B

------------------------------------------------------------
     int s = initport(PORT_NUMBER(XXX),SERVER,SOCK_STREAM,host);
     char *host;

     int client = select_server_stream(s,&fds);
     int s;
     fd_set fds;

     int cc = sized_read(fd,buffer,maxsize)
     int cc = sized_write(fd,buffer,size)
     int fd;
     char *buffer;
     int maxsize;
------------------------------------------------------------

initport() $B$G!"(Bsocket(), socket(), bind(), listen(),
connect(), getservbyname(), $B$J$I$J$I!"$o$:$i$o$7$$$b$N$OA4It(B
$B$d$C$F$/$l$^$9!#%/%i%$%"%s%HB&$O!"(Binitport() $B$@$1$G=*$o$j$G(B
$B$9!#%5!<%PB&$O!"(Binitport() $B$7$F!"(Bselect_server_stream() $B$7$^(B
$B$9!#(Bselect_server_stream() $B$O!"?7$?$J@\B3MW5a$r<+F0E*$K<u$1(B
$BIU$1$F$/$l$k$N$G!"%5!<%P$b<B:]$NF~=PNO$K@lG0$G$-$^$9!#(B
sized_read() $B$H(B sized_write() $B$r;H$o$:!"(Binitport() $B$H(B 
select_server_stream() $B$@$1$G$b;H$($^$9!#(B

sized_read() $B$H(B sized_write() $B$O!"(BTCP/IP $B>e$G=g=xIU$-%Q%1%C(B
$B%H$r<B8=$9$k$?$a$N%i%$%V%i%j$G$9!#;E3]$1$O4JC1$G!"Aw$k%G!<%?(B
$B$N@hF,$K%P%$%H?t$rIU$1$F%9%H%j!<%`$KN.$7$F$$$^$9!#<u$1<h$kJ}(B
$B$O!"$3$l$rMxMQ$7$F!"%G!<%?$r<u$1<h$l$^$9!#(BTCP/IP $B$GG:$^$5$l(B
$B$k%?%$%_%s%0$NLdBj$K$O!"$3$l$G2r7h$G$9!#(B

$B$"$H!"$3$l$i$N%=!<%9!&%W%m%0%i%`<+?H$O!"(Bsocket() $B$N;H$$J}$N(B
$B65:`$H$7$F!":GE,$G$9!#D9$5$b<j$4$m$G!"0l@Z$NL5BL$,$J$/!"$=$l(B
$B$G$$$F%7%s%0%k%9%l%C%I$G;H$&5;=Q$O!"$[$H$s$IA4It=P$F$$$^$9!#(B
$B%i%$%V%i%j$NMxMQNc$b$?$/$5$s4^$^$l$F$$$^$9!#(B
------------------------------------------------------------
top[sized_io] 1501% wc *.[ch]
     31     101     849 inet.h
     40      87     759 reader-auto.c
     39      94     737 reader.c
    145     531    3746 sized_io.c
    172     549    4538 stream.c
     63     155    1259 writer-auto.c
     61     151    1191 writer.c
    551    1668   13079 total
top[sized_io] 1502% 
------------------------------------------------------------
$B%i%$%V%i%j$O!"(Binet.h, sized_io.c, stream.c $B$@$1$G$9!#(B
$B8e$O!"NcBj$G$9!#(B

In article <OZAWA.95May15191120@rose.pe.u-tokyo.ac.jp> 
ozawa@prince.pe.u-tokyo.ac.jp (OZAWA Sakuro) writes:
> $B>._7!wElBg$H$$$$$^$9!#(B
>   $B:n$j$?$$$b$N$O!"%^%k%A%m%\%C%H%7%_%e%l!<%7%g%s%W%m%0%i%`$G!"%=%1%C%H(B
> $B$,$i$_$NBg6Z$H$7$F$O0J2<$N$h$&$J$b$N$K$7$?$$$N$G$9!#(B

$BK\Ev$K(B TCP/IP $B$G$d$i$J$$$H$$$1$J$$$J$i!">e$N%i%$%V%i%j$r$*A&(B
$B$a$7$^$9!#!J;d$J$i!"7ZNL%W%m%;%9!J%9%l%C%I!K$G:n$k=j$G$7$g$&(B
$B$1$l$I$b!#!K(B

sized_io $B$NOC$NB3$-$O!"(BFollowup-To: fj.net.programming $B$G$*(B
$B4j$$$7$^$9!#(B

$B!@!@!!?7>k!!Lw!!!J$7$s$8$g$&!!$d$9$7!K!!!@!@(B
$B!@!@!!N05eBg3X!!>pJs9)3X!!!!!!!!!!!!!!!!!@!@(B

$BIUO?!'(B streadm-sized_io $B%i%$%V%i%j$N(Barchie $B$N7k2L$rIU$1$F$*(B
$B$-$^$9!#(B
------------------------------------------------------------
ftp.ics.es.osaka-u.ac.jp
/UUNET91/vol8/pub
-rw-r--r--      34704   Jun 30 1990  sized_io.shar.Z
/UUNET/tape7/pub
-rw-rw-r--      34704   Jun 30 1990  sized_io.shar.Z
ftp.lab.kdd.co.jp
/pub5/unix
-rw-r--r--      22851   Dec 17 1990  sized_io.shar.gz
------------------------------------------------------------
$B$=$l$K$7$F$b!"8E$$%=!<%9$,;D$C$F$$$FNI$+$C$?!#:G6a!"B?$/$N(B 
ftp $B%5%$%H$O!"?7$7$$$b$r$I$s$I$s(B mirror $B$9$k$?$a$+!"8E$$(B 
comp.sources.unix $B$N%=!<%9$,$J$+$J$+CV$$$F$"$k=j$O$J$$$s$G$9(B
$B$h$M!#$I$3$+4h8G$KCV$$$F$/$l$k$H!"$$$$$s$@$I$J$"!#(B

$B$b$H$b$H$N(B sized_io $B$O!"3N$+%M%C%H%o!<%/$G7k9g$5$l$?7W;;5!>e(B
$B$G6&M-JQ?t$r:n$k$?$a$N%i%$%V%i%j$N0lIt$G$7$?!#$=$N6&M-JQ?t%i(B
$B%$%V%i%j$O!"(Bcomp.sources.unix $B$K%]%9%H$5$l$?$H;W$$$^$9!#;d$O!"(B
$B$=$3$+$i(B stream/sized_io $B$NItJ,$@$1$rH4$-=P$7$FD9G/;H$C$F$-(B
$B$^$7$?!#6&M-JQ?t$NJ}$O!";H$C$F$$$J$+$C$?$b$N$G!"$$$D$>$d$N%G%#(B
$B%9%/!&%/%i%C%7%e$H6&$K$I$3$+$K>C$($F$7$^$C$?$N$G$7$g$&!#(B
