Server inside Docker container, connection refused

Hi

Soooo… i got my server running in docker for windows. Now, it runs and I’ve exposed/published the port (both tcp and udp) my server is listening on. So far so good. When I try to connect a client from the host to the docker container, the client spits out the following:

java.lang.RuntimeException: Error configuring channels
	at com.jme3.network.base.DefaultClient.configureChannels(DefaultClient.java:448) ~[jme3-networking-3.2.1-stable.jar:3.2-stable]
	at com.jme3.network.base.DefaultClient.dispatch(DefaultClient.java:484) [jme3-networking-3.2.1-stable.jar:3.2-stable]
	at com.jme3.network.base.DefaultClient$Redispatch.messageReceived(DefaultClient.java:508) [jme3-networking-3.2.1-stable.jar:3.2-stable]
	at com.jme3.network.base.ConnectorAdapter.dispatch(ConnectorAdapter.java:132) [jme3-networking-3.2.1-stable.jar:3.2-stable]
	at com.jme3.network.base.ConnectorAdapter.run(ConnectorAdapter.java:174) [jme3-networking-3.2.1-stable.jar:3.2-stable]
Caused by: java.net.ConnectException: Connection refused: connect
	at java.net.DualStackPlainSocketImpl.connect0(Native Method) ~[?:1.8.0_161]
	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) ~[?:1.8.0_161]
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[?:1.8.0_161]
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[?:1.8.0_161]
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[?:1.8.0_161]
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) ~[?:1.8.0_161]
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[?:1.8.0_161]
	at java.net.Socket.connect(Socket.java:589) ~[?:1.8.0_161]
	at java.net.Socket.connect(Socket.java:538) ~[?:1.8.0_161]
	at java.net.Socket.<init>(Socket.java:434) ~[?:1.8.0_161]
	at java.net.Socket.<init>(Socket.java:244) ~[?:1.8.0_161]
	at com.jme3.network.kernel.tcp.SocketConnector.<init>(SocketConnector.java:65) ~[jme3-networking-3.2.1-stable.jar:3.2-stable]
	at com.jme3.network.base.TcpConnectorFactory.createConnector(TcpConnectorFactory.java:57) ~[jme3-networking-3.2.1-stable.jar:3.2-stable]
	at com.jme3.network.base.DefaultClient.configureChannels(DefaultClient.java:433) ~[jme3-networking-3.2.1-stable.jar:3.2-stable]
	... 4 more

Traffic to the container is open, I can telnet to the port (but not other ports), server is running fine with log output etc. However, I’m not sure networking from the container to the host is open on the port.

When I try connecting from client to other ports I get no error - so there’s something going on when I hit the right port.

Now, I seem to recall something about the connection first being established from client to server in tcp, but then after that the server establishes a ‘new’ connection to the client, is this right? (do I need to open the port both ways so to speak)

I’m using the sim-eth-es game example as base.

1 Like

Sim-eth-es might use multiple channels… if so then that’s multiple consecutive ports.

1 Like

Thanks!

Cool! Looking forward for a wiki addition or at least a post to share information :slight_smile: