From owner-man-jp@jp.freebsd.org  Tue Jun  8 13:58:02 1999
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id NAA59304;
	Tue, 8 Jun 1999 13:58:02 +0900 (JST)
	(envelope-from owner-man-jp@jp.FreeBSD.org)
Received: from ftth27.ee.uec.ac.jp (ftth27.ee.uec.ac.jp [130.153.13.195])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id NAA59299
	for <man-jp@jp.freebsd.org>; Tue, 8 Jun 1999 13:58:02 +0900 (JST)
	(envelope-from tyama@ftth.ee.uec.ac.jp)
Received: from localhost (localhost.ee.uec.ac.jp [127.0.0.1])
	by ftth27.ee.uec.ac.jp (8.9.2/8.9.1) with ESMTP id NAA13369
	for <man-jp@jp.freebsd.org>; Tue, 8 Jun 1999 13:57:22 +0900 (JST)
	(envelope-from tyama@ftth.ee.uec.ac.jp)
To: man-jp@jp.freebsd.org
X-Mailer: Mew version 1.93 on Emacs 19.34 / Mule 2.3 (SUETSUMUHANA)
Mime-Version: 1.0
Content-Type: Multipart/Mixed;
	boundary="--Next_Part(Tue_Jun__8_13:56:53_1999_518)--"
Content-Transfer-Encoding: 7bit
Message-Id: <19990608135721Z.tyama@ftth.ee.uec.ac.jp>
Date: Tue, 08 Jun 1999 13:57:21 +0900
From: Yamaguchi Takahiro <tyama@ftth.ee.uec.ac.jp>
X-Dispatcher: imput version 980905(IM100)
Lines: 270
Reply-To: man-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+990526
X-Sequence: man-jp 1565
Subject: [man-jp 1565] ttcp.4
Errors-To: owner-man-jp@jp.freebsd.org
Sender: owner-man-jp@jp.freebsd.org
X-Originator: tyama@ftth.ee.uec.ac.jp

----Next_Part(Tue_Jun__8_13:56:53_1999_518)--
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit

$B$3$s$K$A$O(B, $B;38}!wEEDLBg$G$9!#(B
ttcp.4 $B$N=iLu$G$9!#$h$m$7$/$*4j$$$7$^$9!#(B
-----
 $B;38}(B $B5.9((B (YAMAGUCHI Takahiro) 
 $BEE5$DL?.Bg3X(B $BEE;R9)3X@l96(B $B;0LZ8&5f<<(B
 tyama@ftth.ee.uec.ac.jp, ytaka@a1.mbn.or.jp


----Next_Part(Tue_Jun__8_13:56:53_1999_518)--
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=ttcp.4

.\" Copyright 1994, 1995 Massachusetts Institute of Technology
.\"
.\" Permission to use, copy, modify, and distribute this software and
.\" its documentation for any purpose and without fee is hereby
.\" granted, provided that both the above copyright notice and this
.\" permission notice appear in all copies, that both the above
.\" copyright notice and this permission notice appear in all
.\" supporting documentation, and that the name of M.I.T. not be used
.\" in advertising or publicity pertaining to distribution of the
.\" software without specific, written prior permission.  M.I.T. makes
.\" no representations about the suitability of this software for any
.\" purpose.  It is provided "as is" without express or implied
.\" warranty.
.\" 
.\" THIS SOFTWARE IS PROVIDED BY M.I.T. ``AS IS''.  M.I.T. DISCLAIMS
.\" ALL EXPRESS OR IMPLIED WARRANTIES WITH REGARD TO THIS SOFTWARE,
.\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT
.\" SHALL M.I.T. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
.\" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
.\" USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
.\" ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" $Id: ttcp.4,v 1.6 1997/03/19 19:47:42 bde Exp $
.\" jpman %Id: ttcp.4,v 0.0 1999/02/22 16:14:03 horikawa Stab %
.\"
.Dd January 18, 1995
.Dt TTCP 4
.Os FreeBSD 2.1
.Sh $BL>>N(B
.Nm ttcp
.Nd $B%H%i%s%9%_%C%7%g%s%3%s%H%m!<%k%W%m%H%3%k$N%H%i%s%6%/%7%g%s3HD%5!G=(B
.Sh
.Fd #include <sys/types.h>
.Fd #include <sys/socket.h>
.Fd #include <netinet/in.h>
.Fd #include <netinet/tcp.h>
.Ft int
.Fn setsockopt sock IPPROTO_TCP TCP_NOPUSH &One "sizeof One"
.br
.Ft ssize_t
.Fn sendto sock msg len MSG_EOF &sin "sizeof sin"
.br
.Ft ssize_t
.Fn sendto sock msg len MSG_EOF 0 0
.Sh $B2r@b(B
.Tn T/TCP
$B$O(B
.Tn TCP
$B%W%m%H%3%k(B
(
.Xr tcp 4
$B$r;2>H(B)
$B$X$N3HD%5!G=$N=89g$G$9!#(B
$BK\5!G=$K$h$j>/NL$N%G!<%?$r(B 2 $B$D$N%Q%1%C%H$N8r49$G$d$j$H$j$9$k$3$H$,$G$-!"(B
$B=>$C$FI8=`$N(B
.Tn TCP
$B%3%M%/%7%g%s$GK\MhH/@8$9$kM>J,$J1}I|$K$h$kCY1d$rL5$/$9$3$H$,$G$-$^$9!#(B
$B%=%1%C%H%$%s%?%U%'!<%9$O(B
.Tn T/TCP
$B$r%5%]!<%H$9$k$h$&$K=$@5$5$l$F$*$j!"(B
$B$^$?$3$3$G$OFC<l$J%1!<%9$K$D$$$F>\=R$7$F$$$^$9!#(B
$B%W%m%H%3%k$K0MB8$7$J$$ItJ,$N%5%]!<%H$K$D$$$F$O(B
.Xr socket 2
$B5Z$S(B
.Xr send 2
$B$N%^%K%e%"%k%Z!<%8$G=R$Y$i$l$F$$$^$9!#(B
.Tn T/TCP
$B$O(B RFC 1644 $B$GDj5A$5$l$F$$$^$9!#(B
.Pp
.Tn T/TCP
$B3HD%5!G=$O$$$/$D$+$N%*%W%7%g%s$N;XDj$K$h$j(B
$BFCDj$N%3%M%/%7%g%s$NA4$F$NItJ,$K$*$$$F5!G=$5$;$k$3$H$,$G$-!"(B
$B$3$l$K$h$j0lAH$N%[%9%H4V$G$N:G=i$N%3%M%/%7%g%s$r=|$/A4$F$N(B
3 $B%&%'%$%O%s%I%7%'!<%/$rL5$/$9$3$H$,$G$-$^$9!#(B
$B$5$i$K$3$l$iF1$8%*%W%7%g%s$K$h$j!"(B
$B8E$$F10l$N%Q%1%C%H$r$h$j3N<B$KH=JL$9$k$3$H$,2DG=$G$"$j!"(B
$B=>$C$F(B
.Tn TCP
$B%W%m%H%3%k$,%3%M%/%7%g%s$N%/%m!<%:8e$N>uBV$rJ]$?$J$1$l$P$J$i$J$$(B
$B;~4VNL$r8:$i$9$3$H$,$G$-$^$9!#(B
.Dq Li net.inet.tcp.rfc1644
$B$N(B MIB $B$NJQ?t$O<B9T;~$K(B
.Tn T/TCP
$B%M%4%7%(!<%7%g%s$rL58z2=$9$k$?$a$K;HMQ$9$k$3$H$,$G$-$^$9!#(B
$B$7$+$7$J$,$i!"K\%W%m%H%3%k$O(B T/TCP $B$G$O$J$$%7%9%F%`$,(B
T/TCP $B$K3HD%$5$l$?%7%9%F%`$KBP$7<+F0E*$KI8=`$N(B
.Tn TCP
$B$K$5$;$FDL?.$9$k$3$H$rJ]>Z$9$k$?$a$K@_7W$5$l$?$b$N$G$9!#(B
.Sh $B%H%i%s%6%/%7%g%s%b%G%k(B
.Tn T/TCP
$B$GMQ$$$i$l$k(B
.Dq $B%H%i%s%6%/%7%g%s(B
$B$N%b%G%k$O$+$J$jC1=c$J$b$N$G$9(B:
.Bl -enum
.It
$B%/%i%$%"%s%H%W%m%0%i%`$O%5!<%P$KAw?.$9$kMW5a$r:n@.$7$^$9!#(B
$B$=$l$OC10l$N(B
.Tn TCP
$B%;%0%a%s%H$K<}$^$k$/$i$$==J,>.$5$J$b$N$G$9!#(B
$B$=$7$F%*%W%7%g%s$H%G!<%?$H6&$K(B
SYN PUSH FIN $B%;%0%a%s%H$r%5!<%P$KAw$j$^$9!#(B
.It
$B%5!<%P%W%m%0%i%`$OI8=`$N(B
.Tn TCP
$B%3%M%/%7%g%s$N;~$HF1MM$K$7$FMW5a$r<u<h$C$F2rFI$7!"(B
$BC10l$N%;%0%a%s%H$K<}$^$kBg$-$5$G1~Ez$r:n@.$7$^$9!#(B
$B$=$NMW5a$,(B T/TCP $B$N>l9g$O!"(B
$B1~Ez$O(B ($B0[$J$C$?(B) $B%*%W%7%g%s$H%G!<%?$H6&$K(B
$BC10l$N(B SYN PUSH FIN ACK $B%;%0%a%s%H$G%/%i%$%"%s%H$KJV$5$l$^$9!#(B
T/TCP $B$G$O$J$$>l9g$O!"(B
$B$=$N%3%M%/%7%g%s$ODL>o$N(B
.Tn TCP
$B$H$J$j$^$9!#(B
$B%5!<%P$O$3$N;~$=$N%=%1%C%H$r%/%m!<%:$7$^$9!#(B
.It
$B%/%i%$%"%s%H$O$=$N1~Ez$rFI$_9~$_!"$=$N%=%1%C%H$r%/%m!<%:$7$^$9!#(B
.El
.Sh $B%/%i%$%"%s%H%5%]!<%H(B
$B%/%i%$%"%s%HB&$N%5%]!<%H$O!"(B
.Dq $B0EL[$N@\B3(B
$B5Z$S(B
.Dq $BAw?.$H%7%c%C%H%@%&%s(B
$B$N35G0$rM}2r$9$kMM$K(B
.Xr sendto 2
$B5Z$S(B
.Xr sendmsg 2
$B%7%9%F%`%3!<%k$N0UL#$r3HD%$9$k$3$H$K$h$jDs6!$5$l$^$9!#(B
$B%H%i%s%6%/%7%g%s$K$h$kMW5a$rAw?.$9$k$K$O(B
.Xr sendto 2
$B%7%9%F%`%3!<%k$rDL>o;HMQ$7!"<!$NNc$NMM$K$7$^$9(B:
.Bd -literal -offset indent
char request[REQ_LEN];
struct sockaddr_in sin;
int sock, req_len;

sock = socket(PF_INET, SOCK_STREAM, 0);

/* request[] $B$H(B sin $B$N=`Hw(B */

err = sendto(sock, request, req_len, MSG_EOF, 
	(struct sockaddr *)&sin, sin.sin_len);

/* $B%(%i!<=hM}(B */

req_len = read(sock, request, sizeof request);
close(sock);

/* $B1~Ez=hM}(B */

.Ed
.Pp
.Fn sendto
$B$r%3!<%k$9$k$H!"$=$N;~$N%=%1%C%H$N>uBV$O(B
.Xr connect 2
$B5Z$S(B
.Xr shutdown 2
$B%7%9%F%`%3!<%k$,;H$o$l$?;~$H(B
$BF1$8>uBV$K$J$k$3$H$KCm0U$7$F2<$5$$!#(B
$BB($A!"<B9T$N:]$N$3$N%=%1%C%H$KBP$9$kM#0lE,$7$?A`:n$O(B
.Xr read 2
$B5Z$S(B
.Xr close 2
$B$N;HMQ$G$9(B
($B%/%i%$%"%s%H$N(B
.Tn TCP
$BAw?.It$O$9$G$K%7%c%C%H%@%&%s$5$l$F$$$k$N$G!"(B
$B$3$N%=%1%C%H$rB>$NAwIU@h$X(B
.Xr connect 2
$B$9$k$3$H$O$G$-$^$;$s!#(B)$B!#(B
.Sh $B%5!<%P%5%]!<%H(B
.Tn T/TCP
$B$r;HMQ$9$k:]$K%5!<%P$GMxMQ2DG=$J%*%W%7%g%s$,(B
2 $B$D$"$j$^$9(B:
.Bl -enum
.It
.Dv TCP_NOPUSH
$B%=%1%C%H%*%W%7%g%s$r%;%C%H$7!"(B
$BI8=`$N(B
.Xr write 2
$B%3!<%k$r;H$C$F1~Ez$r9T$C$F2<$5$$!#(B
.It
$B%/%i%$%"%s%H$K$*$$$F!"L\E*CO$r;XDj$;$:$K(B
.Xr sendto 2
$B$r(B
.Dv MSG_EOF
$B%U%i%0$H6&$K;HMQ$7$F2<$5$$!#(B
.El
.Pp
$B:G=i$N%*%W%7%g%s$O!"(B
$B8=:_$N%5!<%P$G(B
.Tn T/TCP
$B3HD%5!G=$r;HMQ$9$k$h$&JQ99$9$k$K$O(B
$B0lHL$KBEEv$JA*Br$G$"$j!"(B
$BC1=c$K(B
.Fn setsockopt sock IPPROTO_TCP TCP_NOPUSH &One "sizeof One"
($B$3$3$G(B
.Va One
$B$O(B 0 $B0J30$NCM$N@0?tJQ?t$G$9(B) $B$X$N%3!<%k$rDI2C$9$k$@$1$G$9!#(B
$B%5!<%P$N%=%1%C%H$O$"$i$f$k%G!<%?$,Aw?.$5$l$kA0$K(B
($B%=%1%C%H$N%P%C%U%!$,K0OB$7$F$$$J$$8B$j(B)
$B%/%m!<%:$5$l$J$1$l$P$J$j$^$;$s!#(B
.Pp
$BFsHVL\$N%*%W%7%g%s$O?7$7$$%5!<%P$K$OK>$^$7$$$b$N$G!"(B
$B;~$K$O8E$$%5!<%P$K99?7$9$k$/$i$$4JC1$G$9!#(B
$B$3$N>l9g!"1~Ez$NCJ3,$OIaDL(B
.Fn write
$B$X$N%3!<%k$r4^$s$G$*$j!"(B
$B<!$NMM$KBeMQ$7$^$9(B:
.Pp
.Dl "sendto(sock, buf, len, MSG_EOF, (struct sockaddr *)0, 0)"
.Pp
$B$3$N>l9g!"%/%i%$%"%s%H$G$O1~Ez$OD>$A$KAw?.$5$l!"(B
$B%=%1%C%H$O$3$N;~E@$G2?$K$b;HMQ$9$k$3$H$O=PMh$:!"(B
$BD>$A$K%/%m!<%:$9$Y$-$G$9!#(B
.Sh MIB $B$NJQ?t(B
.Tn T/TCP
$B3HD%5!G=$rMxMQ$9$k$K$O!"(B
$BE,@Z$J(B
.Tn TCP
$B%*%W%7%g%s$rAw?.$5$;$k$?$a$K(B
.Dq Li net.inet.tcp.rfc1644
$B$N(B MIB $B$NJQ?t$,??$G$"$kI,MW$,$"$j$^$9!#(B
$B>\:Y$O(B
.Xr tcp 4
$B$r;2>H$7$F2<$5$$!#(B
.Sh $B4XO"9`L\(B
.Xr send 2 ,
.Xr setsockopt 2 ,
.Xr inet 4 ,
.Xr tcp 4
.Rs
.%A R. Braden
.%T "T/TCP \- TCP Extensions for Transactions"
.%O RFC 1644
.Re
.Sh $BNr;K(B
.Tn T/TCP
$B$N%5%]!<%H$O(B
.Fx 2.1
$B$G=i$a$F9T$o$l$^$7$?!#(B
$B$=$l$O(B the University of Southern California $B$N(B
Information Sciences Institute $B$N(B Bob Braden $B$H(B Liming Wei
$B$,=q$$$?%3!<%I$r4p$K$7$F$*$j!"(B
$B$^$?(B the University of Twente $B$N(B Andras Olah $B$K$h$j0\?"$5$l$^$7$?!#(B



----Next_Part(Tue_Jun__8_13:56:53_1999_518)----
