0
votes

So I've written a program using the Socket and ServerSocket classes. However, I can only connect to my server if both server and client are on the same machine, and the client connects to localhost (127.0.0.1). Even if the two are on the same machine, I can't connect using my regular IP address: I have to use 127.0.0.1. How do I set up the server so that I can connect to it from any computer?

I'm using the tutorial program on networking in Java (http://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html).

Here's the stack trace from the client: java.net.ConnectException: Connection timed out: connect at java.net.DualStackPlainSocketImpl.connect0(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:69) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391) at java.net.Socket.connect(Socket.java:579) at java.net.Socket.connect(Socket.java:528) at java.net.Socket.(Socket.java:425) at java.net.Socket.(Socket.java:208) at client.Client.connect(Client.java:38) at client.ClientUI$2.mouseClicked(ClientUI.java:87) at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:269) at java.awt.Component.processMouseEvent(Component.java:6508) at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) at java.awt.Component.processEvent(Component.java:6270) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component.dispatchEventImpl(Component.java:4861) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4501) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) at java.awt.Container.dispatchEventImpl(Container.java:2273) at java.awt.Window.dispatchEventImpl(Window.java:2719) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729) at java.awt.EventQueue.access$200(EventQueue.java:103) at java.awt.EventQueue$3.run(EventQueue.java:688) at java.awt.EventQueue$3.run(EventQueue.java:686) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) at 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) at java.awt.EventQueue.dispatchEvent(EventQueue.java:699) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) Java Result: -1

2
Question looks similar to this post... stackoverflow.com/questions/7411302/…Ashay Batwal
Did you test-wise disable your personal firewall?Simon

2 Answers

1
votes

Unfortunately you have not sent neither code nor stacktrace, so it is impossible to discover your problem.

However I can suppose that you are probably blocked by personal firewall that is running on your machine. This is a typical problem when moving from one to 2 machines. Discover this: first stop firewall (if it is running) on both machines. If it helps configure rule that will allow your client connect to your server (configure port and probably IP in firewall rules.)

0
votes

Check your operating system firewall and your antivirus program that may include a firewall too. As AlexR suggested, you can disable all firewalls and antiviruses, then if connection is succeeded, you can add to firewalls the rules needed to allow your connection ...