Java .$B$N.(J Socket .$B%*%W%7%g%s.(J

C .$B$NJ}K!.(J

C .$B$G%W%m%0%i%_%s%0$9$k>l9g$O!" setsockopt(int fd, int level, int optval, void *optdata, int optdatalen); fd = .$B$9$G$K3+$+$l$?.(J (.$B$*$=$i$/@\B3$5$l$?.(J) .$B%=%1%C%H.(J fd level = .$B%*%W%7%g%s$,E,MQ$5$l$k%W%m%H%3%k%9%?%C%/.(J (IP, UDP, TCP) .$B$N%l%Y%k.(J optval = .$B%*%W%7%g%s!".(JCONSTANT optdata = .$B%*%W%7%g%s$K0MB8$9$k%Q%i%a!<%?$N9=B$BN$X$N%]%$%s%?.(J (.$BFCDj$N%*%W%7%g%s$N>l9g$N$_.(J)

Java .$B$NJ}K!.(J

.$B%*%W%7%g%s$r@_Dj$9$k:]$N.(J C .$B$NJ}K!$O!"%*%V%8%'%/%H;X8~%W%m%0%i%_%s%0$N7?$N0BA4@-$r7g$$$F$$$^$9!#.(J .$B@_Dj$*$h$Svoid* .$B$G$9!#.(J .$B4V0c$C$?%*%W%7%g%s<1JL;R$r;XDj$7$?$j!".(Jvoid* .$B%Q%i%a!<%?$K4V0c$C$?7?$N%*%V%8%'%/%H$r;XDj$7$?$j!"$=$N%Q%i%a!<%?$K4V0c$C$?$b$N$r;XDj$7$?$j$9$k$3$H$,!"4JC1$K5/$3$j$($^$9!#.(J .$B$5$i$K0-$$$3$H$K!"$=$N$h$&$J%(%i!<$N$"$k%3!<%I$bDL>o$O%3%s%Q%$%k$5$l$F$7$^$$!"%(%i!<$OJava .$B$G$O8=:_!"%*%W%7%g%s$r@_Dj$9$k$?$a$N!"7?$N0BA4@-$N$"$kJ}K!$,Ds6!$5$l$F$$$^$9!#.(J .$B3F%=%1%C%H%/%i%9$O!"$=$N%/%i%9$,%5%]!<%H$9$k3F%*%W%7%g%sMQ$N
  • TCP_NODELAY
    • Nagle .$B%"%k%4%j%:%`$rL58z$K$9$k.(J
    • (.$B%/%i%$%"%s%H.(J) Socket .$B$KBP$7$FM-8z.(J
  • SO_LINGER
    • linger-on-close .$B%?%$%`%"%&%H$r;XDj$9$k.(J
    • (.$B%/%i%$%"%s%H.(J) Socket .$B$KBP$7$FM-8z.(J
  • SO_TIMEOUT
    • .$B%=%1%C%HA`:n$r%V%m%C%/$9$k%?%$%`%"%&%H$r;XDj$9$k.(J (.$B1J5W$K%V%m%C%/$7$J$$$3$H.(J)
    • .$B$9$Y$F$N%=%1%C%H!"$D$^$j.(J Socket.$B!".(JServerSocket.$B!"$*$h$S.(J DatagramSocket .$B$KBP$7$FM-8z.(J
  • SO_BINDADDR
    • .$B%=%1%C%H$N%m!<%+%k%"%I%l%9%P%$%s%G%#%s%0$r%U%'%C%A$9$k.(J
    • Socket.$B!".(JServerSocket.$B!"$*$h$S.(J DatagramSocket .$B$KBP$7$FM-8z.(J
  • SO_REUSEADDR
    • .$B%=%1%C%H$N%"%I%l%9$N:FMxMQ$rM-8z$K$9$k.(J
    • Socket.$B!".(JServerSocket.$B!"$*$h$S.(J DatagramSocket .$B$KBP$7$FM-8z.(J
  • SO_BROADCAST
    • .$B%V%m!<%I%-%c%9%H%a%C%;!<%8$rAw?.$9$k%=%1%C%H$rM-8z$K$9$k.(J
    • DatagramSocket .$B$KBP$7$FM-8z.(J
  • SO_SNDBUF
    • .$BAw=P%M%C%H%o!<%/F~=PNO$KBP$7$F!"4pAC$K$J$k%P%C%U%!$N%5%$%:$r@_Dj$9$k.(J
    • .$B$9$Y$F$N%=%1%C%H!"$D$^$j.(J Socket.$B!".(JServerSocket.$B!"$*$h$S.(J DatagramSocket .$B$KBP$7$FM-8z.(J
  • SO_RCVBUF
    • .$B$3$N%=%1%C%H$G%G!<%?$r.$B$9$Y$F$N%=%1%C%H!"$D$^$j.(J Socket.$B!".(JServerSocket.$B!"$*$h$S.(J DatagramSocket .$B$KBP$7$FM-8z.(J
  • SO_KEEPALIVE
    • .$B%=%1%C%H$N%-!<%W%"%i%$%V$r%*%s$K$9$k.(J
    • Socket .$B$KBP$7$FM-8z.(J
  • SO_OOBINLINE
    • TCP .$B6[5^%G!<%?$N%$%s%i%$%sSocket .$B$KBP$7$FM-8z.(J
  • IP_MULTICAST_IF
    • .$B%^%k%A%-%c%9%H%Q%1%C%H$KBP$7$F!"Aw=P%$%s%?%U%'!<%9$r;XDj$9$k.(J (.$B%^%k%A%[!<%`%[%9%H>e$G.(J)
    • MulticastSocket .$B$KBP$7$FM-8z.(J
  • IP_MULTICAST_LOOP
    • .$B%^%k%A%-%c%9%H%G!<%?%0%i%`$N%m!<%+%k%k!<%W%P%C%/$rM-8z$^$?$OL58z$K$9$k.(J
    • MulticastSocket .$B$KBP$7$FM-8z.(J
  • IP_TOS
    • TCP .$B$^$?$O.(J UDP .$B%=%1%C%H$N.(J IP .$B%X%C%@Fb$N%5!<%S%9%?%$%W%U%#!<%k%I$^$?$O%H%i%U%#%C%/%/%i%9%U%#!<%k%I$r@_Dj$9$k.(J
    • Socket.$B!".(JDatagramSocket .$B$KBP$7$FM-8z.(J

.$BJdB-.(J

Java .$B$G$O%5%]!<%H$5$l$F.(J.$B$$$J$$.(J.$B!";HMQ2DG=$J.(J BSD .$B%*%W%7%g%s$O
  • RAW/ICMP SOCKETS:
    .$B$3$N%*%W%7%g%s$r;HMQ$9$kM}M3$H$7$F!".(JJava .$B$G.(J ping .$B$r5-=R$G$-$k$H$$$&E@$,$"$k$,!"$=$l$K$h$C$F%;%-%e%j%F%#>e$NLdBj$,H/@8$9$k2DG=@-$,$"$k!#.(J UNIX .$B%3%s%T%e!<%?>e$N.(J root .$B$G$J$1$l$P$J$i$J$$.(J

    .$B\:Y.(J

    SocketImpl/DatagramSocketImpl .$B$r%5%V%/%i%92=$9$k$H$-0J30$O!"$3$N>pJs$OI,MW$"$j$^$;$s!#.(J .$B$9$Y$F$N.(J *Socket .$B%*%V%8%'%/%H$O!"%M%$%F%#%V%3!<%I$X$N%$%s%?%U%'!<%9$H$J$k!"4pAC$K$J$k.(J SocketImpl/DatagramSocketImpl .$B$r;}$C$F$$$^$9!#.(J Impl .$B%/%i%9$O!"%*%W%7%g%s$r%5%]!<%H$9$k$?$a$N.(J 2 .$B$D$N%a%=%C%I$r void setOption(int optID, Object val) throws SocketException; Object getOption(int optID) throws SocketException; .$B$3$l$O.(J C .$B$K$h$/;w$F$$$^$9!#$3$l$i$N%a%=%C%I$O!"%M%$%F%#%V%a%=%C%I$KBP$7$F@\Ce:^$N$h$&$JF/$-$r$7!"%M%$%F%#%V%a%=%C%I$r5/F0$9$kA0$K7?$N0BA4@-$rJ]>Z$7$^$9!#.(J