public class ServerSocket extends Object implements Closeable
ãµãŒããŒã»ãœã±ããã®å®éã®åŠçã¯ãSocketImplã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ã«ãã£ãŠå®è¡ãããŸãã ã¢ããªã±ãŒã·ã§ã³ã¯ããœã±ããå®è£
ãäœæãããœã±ããã»ãã¡ã¯ããªã倿Žããããšã§ãããŒã«ã«ã»ãã¡ã€ã¢ãŠã©ãŒã«ã«é©ãããœã±ãããäœæããããã«ã¢ããªã±ãŒã·ã§ã³èªäœãæ§æããããšãã§ããŸãã
SocketImpl, setSocketFactory(java.net.SocketImplFactory), ServerSocketChannel| ã³ã³ã¹ãã©ã¯ã¿ | 説æ |
|---|---|
ServerSocket() |
ã¢ã³ããŠã³ãã®ãµãŒããŒã»ãœã±ãããäœæããŸãã
|
ServerSocket(int port) |
æå®ãããããŒãã«ãã€ã³ãããããµãŒããŒã»ãœã±ãããäœæããŸãã
|
ServerSocket(int port, int backlog) |
ãµãŒããŒã»ãœã±ãããäœæããæå®ãããããŒã«ã«ã»ããŒãçªå·ã«ãã€ã³ãããæå®ãããããã¯ãã°ãèšå®ããŸãã
|
ServerSocket(int port, int backlog, InetAddress bindAddr) |
æå®ãããããŒããåŸ
æ©ããã¯ãã°ãããã³ãã€ã³ãå
ã®ããŒã«ã«IPã¢ãã¬ã¹ã䜿ã£ãŠãµãŒããŒãäœæããŸãã
|
| 修食åãšå | ã¡ãœãã | 説æ |
|---|---|---|
Socket |
accept() |
ãã®ãœã±ããã«å¯Ÿããæ¥ç¶èŠæ±ãåŸ
æ©ãããããåãåããŸãã
|
void |
bind(SocketAddress endpoint) |
ServerSocketãç¹å®ã®ã¢ãã¬ã¹(IPã¢ãã¬ã¹ããã³ããŒãçªå·)ã«ãã€ã³ãããŸãã |
void |
bind(SocketAddress endpoint, int backlog) |
ServerSocketãç¹å®ã®ã¢ãã¬ã¹(IPã¢ãã¬ã¹ããã³ããŒãçªå·)ã«ãã€ã³ãããŸãã |
void |
close() |
ãã®ãœã±ãããéããŸãã
|
ServerSocketChannel |
getChannel() |
ãã®ãœã±ããã«é¢é£ä»ããããäžæã®
ServerSocketChannelãªããžã§ã¯ããè¿ããŸã(ååšããå Žå)ã |
InetAddress |
getInetAddress() |
ãã®ãµãŒããŒã»ãœã±ããã®ããŒã«ã«ã»ã¢ãã¬ã¹ãè¿ããŸãã
|
int |
getLocalPort() |
ãã®ãœã±ãããæ¥ç¶ãåŸ
æ©äžã®ããŒãçªå·ãè¿ããŸãã
|
SocketAddress |
getLocalSocketAddress() |
ãã®ãœã±ããã®ãã€ã³ãå
ã®ç«¯ç¹ã®ã¢ãã¬ã¹ãè¿ããŸãã
|
int |
getReceiveBufferSize() |
ãã®
ServerSocketã§äœ¿ãããSO_RCVBUFãªãã·ã§ã³ã®å€ãååŸããŸããããã¯ããã®ServerSocketããåãåããœã±ããã«äœ¿çšãããæšå¥šãããã¡ã»ãµã€ãºã§ãã |
boolean |
getReuseAddress() |
SO_REUSEADDRãæå¹ãã©ããã調ã¹ãŸãã |
int |
getSoTimeout() |
SO_TIMEOUTã®èšå®ãååŸããŸãã |
protected void |
implAccept(Socket s) |
ServerSocketã®ãµãã¯ã©ã¹ã¯ããã®ã¡ãœããã䜿ã£ãŠaccept()ããªãŒããŒã©ã€ãããããšã§ãç¬èªã®ãµãã¯ã©ã¹ã®ãœã±ãããè¿ãããããã«ããŸãã
|
boolean |
isBound() |
ServerSocketã®ãã€ã³ãã£ã³ã°ç¶æ
ãè¿ããŸãã
|
boolean |
isClosed() |
ServerSocketã®éããç¶æ
ãè¿ããŸãã
|
void |
setPerformancePreferences(int connectionTime, int latency, int bandwidth) |
ãã®ServerSocketã®ããã©ãŒãã³ã¹èšå®ãè¡ããŸãã
|
void |
setReceiveBufferSize(int size) |
ãã®
ServerSocketããåãå
¥ãããããœã±ããã®SO_RCVBUFãªãã·ã§ã³ã®ããã©ã«ãæšå¥šå€ãèšå®ããŸãã |
void |
setReuseAddress(boolean on) |
SO_REUSEADDRãœã±ããã»ãªãã·ã§ã³ãæå¹ãŸãã¯ç¡å¹ã«ããŸãã |
static void |
setSocketFactory(SocketImplFactory fac) |
ã¢ããªã±ãŒã·ã§ã³ã®ãµãŒããŒã»ãœã±ããå®è£
ãã¡ã¯ããªãèšå®ããŸãã
|
void |
setSoTimeout(int timeout) |
æå®ãããã¿ã€ã ã¢ãŠã(ããªç§)ã䜿ã£ãŠ
SO_TIMEOUTãæå¹ãŸãã¯ç¡å¹ã«ããŸãã |
String |
toString() |
ãã®ãœã±ããã®å®è£
ã¢ãã¬ã¹ãšå®è£
ããŒãã
StringãšããŠè¿ããŸãã |
public ServerSocket()
throws IOException
IOExceptionâãœã±ãããéããšãã®å
¥åºåãšã©ãŒãpublic ServerSocket(int port)
throws IOException
0ã¯ããã®ããŒãçªå·ãèªåçã«(éåžžã¯äžæããŒãç¯å²ãã)å²ãåœãŠãããããšãæå³ããŸãã ãã®ããŒãçªå·ãååŸããã«ã¯ãgetLocalPortãåŒã³åºããŸãã
åä¿¡ããæ¥ç¶(æ¥ç¶èŠæ±)ã®ãã¥ãŒã®æå€§é·ã¯ã50ã«èšå®ãããŸãã ãã¥ãŒãåãŸã£ãŠãããšãã«æ¥ç¶èŠæ±ããããšãæ¥ç¶ã¯æåŠãããŸãã
ã¢ããªã±ãŒã·ã§ã³ã§ãµãŒããŒã»ãœã±ããã»ãã¡ã¯ããªãæå®ããŠããå Žåã¯ããã®ãã¡ã¯ããªã®createSocketImplã¡ãœãããåŒã³åºãããå®éã®ãœã±ãããäœæãããŸãã ããã§ãªãå Žåã¯ããã¬ãŒã³ãªããœã±ãããäœæãããŸãã
ã»ãã¥ãªãã£ã»ãããŒãžã£ãååšããå Žåããã®æäœãèš±å¯ãããããã«ããã®checkListenã¡ãœãããportåŒæ°ããã®åŒæ°ãšããŠæå®ããŠåŒã³åºãããŸãã ãã®çµæãSecurityExceptionãã¹ããŒãããããšããããŸãã
port - ããŒãçªå·ããŸãã¯èªåçã«å²ãåœãŠãããããŒãçªå·ã䜿çšããå Žåã¯0ãIOException - ãœã±ãããéããŠãããšãã«å
¥åºåãšã©ãŒãçºçããå ŽåãSecurityException - ã»ãã¥ãªãã£ã»ãããŒãžã£ãååšãããã®checkListenã¡ãœããã§ãã®æäœãèš±å¯ãããŠããªãå ŽåãIllegalArgumentException - portãã©ã¡ãŒã¿ãæå®ãããæå¹ãªããŒãå€ã®ç¯å²(0ãã65535)å€ã§ããå ŽåãSocketImpl, SocketImplFactory.createSocketImpl(), setSocketFactory(java.net.SocketImplFactory), SecurityManager.checkListen(int)public ServerSocket(int port,
int backlog)
throws IOException
0ã¯ããã®ããŒãçªå·ãèªåçã«(éåžžã¯äžæããŒãç¯å²ãã)å²ãåœãŠãããããšãæå³ããŸãã ãã®ããŒãçªå·ãååŸããã«ã¯ãgetLocalPortãåŒã³åºããŸãã
åä¿¡ããæ¥ç¶(æ¥ç¶èŠæ±)ã®ãã¥ãŒã®æå€§é·ã¯ãbacklogãã©ã¡ãŒã¿ã«èšå®ãããŸãã ãã¥ãŒãåãŸã£ãŠãããšãã«æ¥ç¶èŠæ±ããããšãæ¥ç¶ã¯æåŠãããŸãã
ã¢ããªã±ãŒã·ã§ã³ã§ãµãŒããŒã»ãœã±ããã»ãã¡ã¯ããªãæå®ããŠããå Žåã¯ããã®ãã¡ã¯ããªã®createSocketImplã¡ãœãããåŒã³åºãããå®éã®ãœã±ãããäœæãããŸãã ããã§ãªãå Žåã¯ããã¬ãŒã³ãªããœã±ãããäœæãããŸãã
ã»ãã¥ãªãã£ã»ãããŒãžã£ãååšããå Žåããã®æäœãèš±å¯ãããããã«ããã®checkListenã¡ãœãããportåŒæ°ããã®åŒæ°ãšããŠæå®ããŠåŒã³åºãããŸãã ãã®çµæãSecurityExceptionãã¹ããŒãããããšããããŸãã backlogåŒæ°ã¯ããœã±ããã®ä¿çãããŠããæ¥ç¶ã®èŠæ±ãããæå€§æ°ã§ãã æ£ç¢ºãªã»ãã³ãã£ãã¯ã¹ã¯å®è£
ã«åºæã§ãã ããšãã°ãå®è£
ãæå€§é·ãèŠå®ããŠãããããã©ã¡ãŒã¿ããŸã£ããç¡èŠãããããå ŽåããããŸãã æå®ãããå€ã¯0ãã倧ãããªããã°ãããŸããã 0以äžã®å Žåã¯ãå®è£
åºæã®ããã©ã«ãã䜿çšãããŸãã
port - ããŒãçªå·ããŸãã¯èªåçã«å²ãåœãŠãããããŒãçªå·ã䜿çšããå Žåã¯0ãbacklog - çä¿¡æ¥ç¶ã®ãã¥ãŒã®èŠæ±ãããæå€§é·ãIOException - ãœã±ãããéããŠãããšãã«å
¥åºåãšã©ãŒãçºçããå ŽåãSecurityException - ã»ãã¥ãªãã£ã»ãããŒãžã£ãååšãããã®checkListenã¡ãœããã§ãã®æäœãèš±å¯ãããŠããªãå ŽåãIllegalArgumentException - portãã©ã¡ãŒã¿ãæå®ãããæå¹ãªããŒãå€ã®ç¯å²(0ãã65535)å€ã§ããå ŽåãSocketImpl, SocketImplFactory.createSocketImpl(), setSocketFactory(java.net.SocketImplFactory), SecurityManager.checkListen(int)public ServerSocket(int port,
int backlog,
InetAddress bindAddr)
throws IOException
0ã¯ããã®ããŒãçªå·ãèªåçã«(éåžžã¯äžæããŒãç¯å²ãã)å²ãåœãŠãããããšãæå³ããŸãã ãã®ããŒãçªå·ãååŸããã«ã¯ãgetLocalPortãåŒã³åºããŸãã
ã»ãã¥ãªãã£ã»ãããŒãžã£ãååšããå Žåããã®ã¡ãœããã«ãã£ãŠãã®checkListenã¡ãœãããportåŒæ°ããã®åŒæ°ãšããŠæå®ããŠåŒã³åºããããã®æäœãèš±å¯ããããã©ããã確èªãããŸãã ãã®çµæãSecurityExceptionãã¹ããŒãããããšããããŸãã backlogåŒæ°ã¯ããœã±ããã®ä¿çãããŠããæ¥ç¶ã®èŠæ±ãããæå€§æ°ã§ãã æ£ç¢ºãªã»ãã³ãã£ãã¯ã¹ã¯å®è£
ã«åºæã§ãã ããšãã°ãå®è£
ãæå€§é·ãèŠå®ããŠãããããã©ã¡ãŒã¿ããŸã£ããç¡èŠãããããå ŽåããããŸãã æå®ãããå€ã¯0ãã倧ãããªããã°ãããŸããã 0以äžã®å Žåã¯ãå®è£
åºæã®ããã©ã«ãã䜿çšãããŸãã
port - ããŒãçªå·ããŸãã¯èªåçã«å²ãåœãŠãããããŒãçªå·ã䜿çšããå Žåã¯0ãbacklog - çä¿¡æ¥ç¶ã®ãã¥ãŒã®èŠæ±ãããæå€§é·ãbindAddrâãµãŒããŒããã€ã³ãããããŒã«ã«InetAddressSecurityException - ã»ãã¥ãªãã£ã»ãããŒãžã£ãååšãããã®checkListenã¡ãœããã§ãã®æäœãèš±å¯ãããŠããªãå ŽåãIOException - ãœã±ãããéããŠãããšãã«å
¥åºåãšã©ãŒãçºçããå ŽåãIllegalArgumentException - portãã©ã¡ãŒã¿ãæå®ãããæå¹ãªããŒãå€ã®ç¯å²(0ãã65535)å€ã§ããå ŽåãSocketOptions, SocketImpl, SecurityManager.checkListen(int)public void bind(SocketAddress endpoint) throws IOException
ServerSocketãç¹å®ã®ã¢ãã¬ã¹(IPã¢ãã¬ã¹ããã³ããŒãçªå·)ã«ãã€ã³ãããŸãã
ã¢ãã¬ã¹ãnullã®å Žåã¯ãã·ã¹ãã ã«ããäžæçãªããŒããšæå¹ãªããŒã«ã«ã»ã¢ãã¬ã¹ãéžæãããŠãœã±ããããã€ã³ããããŸãã
endpoint - ãã€ã³ãå
ã®IPã¢ãã¬ã¹ããã³ããŒãçªå·ãIOException - ãã€ã³ãæäœã«å€±æããå Žåããããã¯ãœã±ããããã§ã«ãã€ã³ããããŠããå ŽåãSecurityException - SecurityManagerãååšãããã®checkListenã¡ãœããããã®æäœãèš±å¯ããªãå ŽåãIllegalArgumentException - 端ç¹ãããã®ãœã±ããã«ãã£ãŠãµããŒããããŠããªãSocketAddressãµãã¯ã©ã¹ã§ããå Žåãpublic void bind(SocketAddress endpoint, int backlog) throws IOException
ServerSocketãç¹å®ã®ã¢ãã¬ã¹(IPã¢ãã¬ã¹ããã³ããŒãçªå·)ã«ãã€ã³ãããŸãã
ã¢ãã¬ã¹ãnullã®å Žåã¯ãã·ã¹ãã ã«ããäžæçãªããŒããšæå¹ãªããŒã«ã«ã»ã¢ãã¬ã¹ãéžæãããŠãœã±ããããã€ã³ããããŸãã
backlogåŒæ°ã¯ããœã±ããã®ä¿çãããŠããæ¥ç¶ã®èŠæ±ãããæå€§æ°ã§ãã æ£ç¢ºãªã»ãã³ãã£ãã¯ã¹ã¯å®è£
ã«åºæã§ãã ããšãã°ãå®è£
ãæå€§é·ãèŠå®ããŠãããããã©ã¡ãŒã¿ããŸã£ããç¡èŠãããããå ŽåããããŸãã æå®ãããå€ã¯0ãã倧ãããªããã°ãããŸããã 0以äžã®å Žåã¯ãå®è£
åºæã®ããã©ã«ãã䜿çšãããŸãã
endpoint - ãã€ã³ãå
ã®IPã¢ãã¬ã¹ããã³ããŒãçªå·ãbacklog - çä¿¡æ¥ç¶ã®ãã¥ãŒã®èŠæ±ãããæå€§é·ãIOException - ãã€ã³ãæäœã«å€±æããå Žåããããã¯ãœã±ããããã§ã«ãã€ã³ããããŠããå ŽåãSecurityException - SecurityManagerãååšãããã®checkListenã¡ãœããããã®æäœãèš±å¯ããªãå ŽåãIllegalArgumentException - 端ç¹ãããã®ãœã±ããã«ãã£ãŠãµããŒããããŠããªãSocketAddressãµãã¯ã©ã¹ã§ããå Žåãpublic InetAddress getInetAddress()
ãœã±ãããéããããåã«ãã€ã³ããããŠããå Žåããã®ã¡ãœããã¯ãœã±ãããéããããããšãåŒãç¶ãããŒã«ã«ã»ã¢ãã¬ã¹ãè¿ããŸãã
ã»ãã¥ãªãã£ã»ãããŒãžã£ãèšå®ãããŠããå Žåã¯ãã»ãã¥ãªãã£ã»ãããŒãžã£ã®checkConnectã¡ãœãããããŒã«ã«ã»ã¢ãã¬ã¹ããã³-1ãåŒæ°ãšããŠåŒã³åºãããæäœãèš±å¯ããããã©ããã確èªãããŸãã ãã®æäœãèš±å¯ãããªãå Žåã¯ãã«ãŒãããã¯ã»ã¢ãã¬ã¹ãè¿ãããŸãã
nullãSecurityManager.checkConnect(java.lang.String, int)public int getLocalPort()
ãœã±ãããéããããåã«ãã€ã³ããããŠããå Žåããã®ã¡ãœããã¯ãœã±ãããéããããããšãåŒãç¶ãããŒãçªå·ãè¿ããŸãã
public SocketAddress getLocalSocketAddress()
ãœã±ãããéããããåã«ãã€ã³ããããŠããå Žåããã®ã¡ãœããã¯ãœã±ãããéããããããšãåŒãç¶ã端ç¹ã®ã¢ãã¬ã¹ãè¿ããŸãã
ã»ãã¥ãªãã£ã»ãããŒãžã£ãèšå®ãããŠããå Žåã¯ãã»ãã¥ãªãã£ã»ãããŒãžã£ã®checkConnectã¡ãœãããããŒã«ã«ã»ã¢ãã¬ã¹ããã³-1ãåŒæ°ãšããŠåŒã³åºãããæäœãèš±å¯ããããã©ããã確èªãããŸãã ãã®æäœãèš±å¯ãããªãå Žåã¯ãã«ãŒãããã¯ã»ã¢ãã¬ã¹ã衚ãSocketAddressãšããœã±ããã®ãã€ã³ãå
ã§ããããŒã«ã«ã»ããŒããè¿ãããŸãã
SocketAddressãã»ãã¥ãªãã£ã»ãããŒãžã£ã«ãã£ãŠæåŠãããå Žåã¯ã«ãŒãããã¯ã»ã¢ãã¬ã¹ã衚ãSocketAddressããœã±ããããŸã ãã€ã³ããããŠããªãå Žåã¯nullãgetInetAddress(), getLocalPort(), bind(SocketAddress), SecurityManager.checkConnect(java.lang.String, int)public Socket accept() throws IOException
æ°ãããœã±ããsãäœæãããã»ãã¥ãªãã£ã»ãããŒãžã£ãååšããå Žåã«ã¯ããã®checkAcceptã¡ãœãããåŒæ°ãšããŠs.getInetAddress().getHostAddress()ããã³s.getPort()ãæå®ããŠåŒã³åºããããã®æäœã®å®è¡ãèš±å¯ãããŠããããšã確èªãããŸãã ãã®çµæãSecurityExceptionãã¹ããŒãããããšããããŸãã
IOException - æ¥ç¶ã®åŸ
æ©äžã«å
¥åºåãšã©ãŒãçºçããå ŽåãSecurityException - ã»ãã¥ãªãã£ã»ãããŒãžã£ãååšãããã®checkAcceptã¡ãœããã§ãã®æäœãèš±å¯ãããŠããªãå ŽåãSocketTimeoutExceptionâ以åã«setSoTimeoutã䜿ã£ãŠã¿ã€ã ã»ã¢ãŠããèšå®ãããŠããŠããã®ã¿ã€ã ã»ã¢ãŠãã«éããå ŽåãIllegalBlockingModeExceptionâãã®ãœã±ããã«é¢é£ãããã£ãã«ãååšãããã®ãã£ãã«ãéããããã³ã°ã»ã¢ãŒãã§ãããåãå
¥ãæºåã®æŽã£ãæ¥ç¶ãååšããªãå ŽåSecurityManager.checkAccept(java.lang.String, int)protected final void implAccept(Socket s) throws IOException
sâãœã±ããIllegalBlockingModeException - ãã®ãœã±ããã«é¢é£ãããã£ãã«ãååšãããã®ãã£ãã«ãéãããã¯ã»ã¢ãŒãã§ããå ŽåãIOException - æ¥ç¶ã®åŸ
æ©äžã«å
¥åºåãšã©ãŒãçºçããå Žåãpublic void close()
throws IOException
accept()ã§çŸåšãããã¯ãããŠãããã¹ãŠã®ã¹ã¬ãããSocketExceptionãã¹ããŒããŸãã
ãã®ãœã±ããã«é¢é£ãããã£ãã«ãååšããå Žåã¯ããã®ãã£ãã«ãéããããŸãã
closeãã€ã³ã¿ãã§ãŒã¹Closeablecloseãã€ã³ã¿ãã§ãŒã¹AutoCloseableIOException - ãœã±ãããéãããšãã«å
¥åºåãšã©ãŒãçºçããå Žåãpublic ServerSocketChannel getChannel()
ServerSocketChannelãªããžã§ã¯ããè¿ããŸã(ååšããå Žå)ã
ãã£ãã«èªäœãServerSocketChannel.openã¡ãœããã䜿çšããŠäœæãããå Žåã«ã ãããµãŒããŒã»ãœã±ããã«ãã£ãã«ãååšããŸãã
nullpublic boolean isBound()
public boolean isClosed()
public void setSoTimeout(int timeout)
throws SocketException
SO_TIMEOUTãæå¹ãŸãã¯ç¡å¹ã«ããŸãã ãã®ãªãã·ã§ã³ã0以å€ã®ã¿ã€ã ã»ã¢ãŠãã«èšå®ãããšããã®ServerSocketã®accept()åŒåºããããã®æéã®éã ããããã¯ãããŸãã ã¿ã€ã ã»ã¢ãŠãã®æéãåãããšãServerSocketããŸã æå¹ã§ãã£ãŠãjava.net.SocketTimeoutExceptionãçºè¡ãããŸãã ãã®ãªãã·ã§ã³ã¯ããããã¯åŠçã«å
¥ãåã«æå¹ã«ããŠããå¿
èŠããããŸãã ã¿ã€ã ã¢ãŠãã¯0ãã倧ããå€ãæå®ããŸãã ã¿ã€ã ã»ã¢ãŠã0ã¯ç¡éã®ã¿ã€ã ã»ã¢ãŠããšããŠè§£éãããŸãã timeoutâããªç§ã§è¡šããããæå®ãããã¿ã€ã ã»ã¢ãŠãSocketException - 䜿çšããŠãããããã³ã«ã§ãšã©ãŒ(TCPãšã©ãŒãªã©)ãçºçããå ŽåãgetSoTimeout()public int getSoTimeout()
throws IOException
SO_TIMEOUT.ãã®ãªãã·ã§ã³ãç¡å¹(ã¿ã€ã ã»ã¢ãŠããç¡é)ã®å Žåã¯0ãè¿ããŸããSO_TIMEOUTå€IOException - å
¥åºåãšã©ãŒãçºçããå ŽåsetSoTimeout(int)public void setReuseAddress(boolean on)
throws SocketException
SO_REUSEADDRãœã±ããã»ãªãã·ã§ã³ãæå¹ãŸãã¯ç¡å¹ã«ããŸãã
TCPæ¥ç¶ãã¯ããŒãºããå Žåãæ¥ç¶ã¯ããŒãºåŸã®äžå®æéããã®æ¥ç¶ãã¿ã€ã ã»ã¢ãŠãç¶æ
(éåžžãTIME_WAITç¶æ
ãŸãã¯2MSLåŸ
æ©ç¶æ
ãšåŒã°ãã)ã«ãšã©ãŸãå¯èœæ§ããããŸãã æ¢ç¥ã®ãœã±ããã»ã¢ãã¬ã¹ãŸãã¯ããŒãã䜿çšããã¢ããªã±ãŒã·ã§ã³ã®å Žåããœã±ããã»ã¢ãã¬ã¹ãŸãã¯ããŒãã«é¢é£ããæ¥ç¶ãã¿ã€ã ã»ã¢ãŠãç¶æ
ã«ãããšããœã±ãããå¿
èŠãªSocketAddressã«ãã€ã³ãã§ããªãããšããããŸãã
bind(SocketAddress)ã䜿çšããŠãœã±ããããã€ã³ãããåã«SO_REUSEADDRãæå¹ã«ãããšã以åã®æ¥ç¶ãã¿ã€ã ã¢ãŠãç¶æ
ã§ããœã±ããããã€ã³ãã§ããŸãã
ServerSocketãäœæããããšãã«ãSO_REUSEADDRã®åæèšå®ã¯å®çŸ©ãããŠããŸããã ã¢ããªã±ãŒã·ã§ã³ã¯getReuseAddress()ã䜿çšããŠãSO_REUSEADDRã®åæèšå®ã確èªã§ããŸãã
ãœã±ããããã€ã³ãããã(isBound()ãåç
§)åŸã§SO_REUSEADDRãæå¹ãŸãã¯ç¡å¹ã«ããå Žåã®åäœã¯å®çŸ©ãããŠããŸããã
on - ãœã±ããã»ãªãã·ã§ã³ãæå¹ã«ãããç¡å¹ã«ããããæå®SocketException - SO_REUSEADDRãœã±ããã»ãªãã·ã§ã³ã®æå¹åãŸãã¯ç¡å¹åæã«ãšã©ãŒãçºçããå ŽåããŸãã¯ãœã±ãããã¯ããŒãºãããŠããå ŽåãgetReuseAddress(), bind(SocketAddress), isBound(), isClosed()public boolean getReuseAddress()
throws SocketException
SO_REUSEADDRãæå¹ãã©ããã調ã¹ãŸããSO_REUSEADDRãæå¹ãã©ããã瀺ãbooleanå€ãSocketException - 䜿çšããŠãããããã³ã«ã§ãšã©ãŒ(TCPãšã©ãŒãªã©)ãçºçããå ŽåãsetReuseAddress(boolean)public String toString()
StringãšããŠè¿ããŸãã
ã»ãã¥ãªãã£ã»ãããŒãžã£ãèšå®ãããŠããå Žåã¯ãã»ãã¥ãªãã£ã»ãããŒãžã£ã®checkConnectã¡ãœãããããŒã«ã«ã»ã¢ãã¬ã¹ããã³-1ãåŒæ°ãšããŠåŒã³åºãããæäœãèš±å¯ããããã©ããã確èªãããŸãã ãã®æäœãèš±å¯ãããªãå Žåã¯ãã«ãŒãããã¯ã»ã¢ãã¬ã¹ã衚ãInetAddressãå®è£
ã¢ãã¬ã¹ãšããŠè¿ãããŸãã
public static void setSocketFactory(SocketImplFactory fac) throws IOException
ã¢ããªã±ãŒã·ã§ã³ã§æ°ãããµãŒããŒã»ãœã±ãããäœæãããšããœã±ããå®è£
ãã¡ã¯ããªã®createSocketImplã¡ãœãããåŒã³åºãããå®éã®ãœã±ãããäœæãããŸãã
ãã®ã¡ãœããã«nullãæž¡ããŠãããã¡ã¯ããªããã§ã«èšå®ãããŠããªãããããããã¯ç¡æäœã«ãªããŸãã
ã»ãã¥ãªãã£ã»ãããŒãžã£ãååšããå Žåããã®æäœãèš±å¯ãããããã«ããã®ã¡ãœããã¯æåã«ã»ãã¥ãªãã£ã»ãããŒãžã£ã®checkSetFactoryã¡ãœãããåŒã³åºããŸãã ãã®çµæãSecurityExceptionãã¹ããŒãããããšããããŸãã
fac - ç®çã®ãã¡ã¯ããªãIOException - ãœã±ããã»ãã¡ã¯ããªã®èšå®äžã«å
¥åºåãšã©ãŒãçºçããå ŽåãSocketException - ãã¡ã¯ããªããã§ã«å®çŸ©ãããŠããå ŽåãSecurityException - ã»ãã¥ãªãã£ã»ãããŒãžã£ãååšãããã®checkSetFactoryã¡ãœããã§ãã®æäœãèš±å¯ãããŠããªãå ŽåãSocketImplFactory.createSocketImpl(), SecurityManager.checkSetFactory()public void setReceiveBufferSize(int size)
throws SocketException
ServerSocketããåãå
¥ãããããœã±ããã®SO_RCVBUFãªãã·ã§ã³ã®ããã©ã«ãæšå¥šå€ãèšå®ããŸãã åãå
¥ãããããœã±ããå
ã«å®éã«èšå®ãããŠããå€ã確èªããŠãã ãããããã«ã¯ãaccept()ãããœã±ãããè¿ãããŠããSocket.getReceiveBufferSize()ãåŒã³åºããŸãã
SO_RCVBUFã®å€ã¯ãå
éšãœã±ããåä¿¡ãããã¡ã®ãµã€ãºã®èšå®ãšããªã¢ãŒãã»ãã¢ã«éç¥ãããTCPåä¿¡ãŠã£ã³ããŠã®ãµã€ãºã®èšå®ã®äž¡æ¹ã«äœ¿çšãããŸãã
ãã®åŸãSocket.setReceiveBufferSize(int)ãåŒã³åºãããšã§å€ã倿Žã§ããŸãã ãã ããã¢ããªã±ãŒã·ã§ã³ãRFC1323ã§å®çŸ©ãããŠãã64Kãã€ããè¶
ããåä¿¡ãŠã£ã³ããŠã䜿çšå¯èœã«ããå¿
èŠãããå Žåã«ã¯ãããŒã«ã«ã»ã¢ãã¬ã¹ã«ãã€ã³ãããåã«æšå¥šå€ãServerSocketã§èšå®ããå¿
èŠããããŸãã ã€ãŸããåŒæ°ãªãã³ã³ã¹ãã©ã¯ã¿ã䜿ã£ãŠServerSocketãäœæããæ¬¡ã«setReceiveBufferSize()ãåŒã³åºããæåŸã«bind()ãåŒã³åºããŠServerSocketãã¢ãã¬ã¹ã«ãã€ã³ãããå¿
èŠãããããšãæå³ããŸãã
ããã«å€±æããŠããšã©ãŒã¯çºçããããããã¡ã»ãµã€ãºã¯èŠæ±ãããå€ã«èšå®ãããŸãããã ãããã®ServerSocketããåãåããœã±ããã®TCPåä¿¡ãŠã£ã³ããŠã¯64Kãã€ã以äžã«ãªããŸãã
size - åä¿¡ãããã¡ã»ãµã€ãºã®èšå®ãµã€ãºã ãã®å€ã¯0ãã倧ãããªããã°ãªããªãã SocketException - 䜿çšããŠãããããã³ã«ã§ãšã©ãŒ(TCPãšã©ãŒãªã©)ãçºçããå ŽåãIllegalArgumentException - å€ã0ãŸãã¯è² ã®å€ã§ããå ŽåãgetReceiveBufferSize()public int getReceiveBufferSize()
throws SocketException
ServerSocketã§äœ¿ãããSO_RCVBUFãªãã·ã§ã³ã®å€ãååŸããŸããããã¯ããã®ServerSocketããåãåããœã±ããã«äœ¿çšãããæšå¥šãããã¡ã»ãµã€ãºã§ãã
åãå
¥ãããœã±ããã«å®éã«èšå®ãããå€ã¯ãSocket.getReceiveBufferSize()ãåŒã³åºããŠå€å®ããããšã«æ³šæããŠãã ããã
Socketã®SO_RCVBUFãªãã·ã§ã³ã®å€ãSocketException - 䜿çšããŠãããããã³ã«ã§ãšã©ãŒ(TCPãšã©ãŒãªã©)ãçºçããå ŽåãsetReceiveBufferSize(int)public void setPerformancePreferences(int connectionTime,
int latency,
int bandwidth)
ãœã±ããã¯ããã©ã«ãã§ãTCP/IPãããã³ã«ã䜿çšããŸãã å®è£ ã«ãã£ãŠã¯ãTCP/IPãšã¯ç°ãªãããã©ãŒãã³ã¹ç¹æ§ãæã€ä»£æ¿ãããã³ã«ãæäŸããããšããããŸãã ã¢ããªã±ãŒã·ã§ã³ã¯ããã®ã¡ãœããã䜿çšããããšã§ãå®è£ ã§å©çšå¯èœãªãããã³ã«ã®éžææã«ããããã®ããåãã®åãæ¹ã瀺ãç¬èªã®èšå®ã衚çŸã§ããŸãã
ããã©ãŒãã³ã¹èšå®ã¯ãæ¥ç¶æéã®çããå¿çæéã®éããããã³åž¯åå¹
ã®åºãã®çžå¯ŸçãªéèŠåºŠã瀺ã3ã€ã®æŽæ°å€ã«ãã£ãŠèšè¿°ãããŸãã ãããã®æŽæ°ã®çµ¶å¯Ÿå€ã¯éèŠã§ã¯ãããŸãããããç¹å®ã®ãããã³ã«ãéžæããããã«ããããã®å€ãåçŽã«æ¯èŒãããŸããããã®éãå€ã倧ãããã°ãã匷ãèšå®ã瀺ããŸãã ããšãã°ãã¢ããªã±ãŒã·ã§ã³ãå¿çæéã®éãã垯åå¹
ã®åºããããæ¥ç¶æéã®çããåªå
ããå Žåã«ã¯ãå€(1, 0, 0)ãæå®ããŠãã®ã¡ãœãããåŒã³åºãããšãã§ããŸãã ã¢ããªã±ãŒã·ã§ã³ãå¿çæéã®éãããã垯åå¹
ã®åºããåªå
ããæ¥ç¶æéã®çããããå¿çæéã®éããåªå
ããå Žåã«ã¯ãå€(0, 1, 2)ãæå®ããŠãã®ã¡ãœãããåŒã³åºãããšãã§ããŸãã
ãã®ãœã±ããã®ãã€ã³ãåŸã«ãã®ã¡ãœãããåŒã³åºããŠããäœã®å¹æããããŸããã ã€ãŸãããã®æ©èœã䜿çšããã«ã¯ãåŒæ°ãªãã³ã³ã¹ãã©ã¯ã¿ã§ãœã±ãããäœæããå¿ èŠããããŸãã
connectionTime - æ¥ç¶æéã®çãã®çžå¯ŸçãªéèŠåºŠã衚ãintlatency - å¿çæéã®éãã®çžå¯ŸçãªéèŠåºŠã衚ãintbandwidth - 垯åå¹
ã®åºãã®çžå¯ŸçãªéèŠåºŠã衚ãint ãã°ãŸãã¯æ©èœãéä¿¡
詳现ãªAPIãªãã¡ã¬ã³ã¹ããã³éçºè
ããã¥ã¡ã³ãã«ã€ããŠã¯ãJava SEã®ããã¥ã¡ã³ããåç
§ããŠãã ããã ãã®ããã¥ã¡ã³ãã«ã¯ãæŠå¿µçãªæŠèŠãçšèªã®å®çŸ©ãåé¿æ¹æ³ãæå¹ãªã³ãŒãäŸãªã©ã®ãéçºè
ã察象ã«ãããã詳现ãªèª¬æãå«ãŸããŠããŸãã
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyãåç
§ããŠãã ããã