そこで、Socket クラスと ServerSocket クラスを使用してプログラムを作成しました。ただし、サーバーとクライアントの両方が同じマシン上にあり、クライアントが localhost (127.0.0.1) に接続している場合にのみ、サーバーに接続できます。2 つが同じマシン上にある場合でも、通常の IP アドレスを使用して接続することはできません。127.0.0.1 を使用する必要があります。どのコンピュータからでも接続できるようにサーバーを設定するにはどうすればよいですか?
Java でのネットワーキングに関するチュートリアル プログラム ( http://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html ) を使用しています。
クライアントからのスタック トレースは次のとおりです。 java.net.ConnectException: 接続がタイムアウトしました: java.net.DualStackPlainSocketImpl.connect0(Native Method) で接続します。 .AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) で java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) で java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) で java.net.PlainSocketImpl.connect( PlainSocketImpl.java:157) で java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391) で java.net.Socket.connect(Socket.java:579) で java.net.Socket.connect(Socket.java:528) で) で java.net.Socket.(Socket.java:425) で java.net.Socket.(Socket.java:208) で client.Client.connect(Client.java:38) で client.ClientUI$2.mouseClicked(ClientUI.java:87) で java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:269) で java.awt.Component.processMouseEvent(Component.java:6508) で javax .swing.JComponent.processMouseEvent(JComponent.java:3321) で java.awt.Component.processEvent(Component.java:6270) で java.awt.Container.processEvent(Container.java:2229) で java.awt.Component で。 dispatchEventImpl(Component.java:4861) で java.awt.Container.dispatchEventImpl(Container.java:2287) で java.awt.Component.dispatchEvent(Component.java:4687) で java.awt.LightweightDispatcher.retargetMouseEvent(Container.java) :4832) java.awt.LightweightDispatcher.processMouseEvent(Container.java:4501) で java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) で java.awt.Container で。dispatchEventImpl(Container.java:2273) で java.awt.Window.dispatchEventImpl(Window.java:2719) で java.awt.Component.dispatchEvent(Component.java:4687) で java.awt.EventQueue.dispatchEventImpl(EventQueue.java) :729) で java.awt.EventQueue.access$200(EventQueue.java:103) で java.awt.EventQueue$3.run(EventQueue.java:688) で java.awt.EventQueue$3.run(EventQueue.java:686) ) java.security.AccessController.doPrivileged(Native Method) で java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) で java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) で java.awt. EventQueue$4.run(EventQueue.java:702) at java.awt.EventQueue$4.run(EventQueue.java:700) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) で java.awt.EventQueue.dispatchEvent(EventQueue.java:699) で java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) で java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java) :161) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) で java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) で java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) で.awt.EventDispatchThread.run(EventDispatchThread.java:91) Java 結果: -1java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) では、java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) で、java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java :138) java.awt.EventDispatchThread.run(EventDispatchThread.java:91) で Java 結果: -1java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) では、java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) で、java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java :138) java.awt.EventDispatchThread.run(EventDispatchThread.java:91) で Java 結果: -1