Python Forum
tcp server/client port connection issue - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: Networking (https://python-forum.io/forum-12.html)
+--- Thread: tcp server/client port connection issue (/thread-12582.html)



tcp server/client port connection issue - valshev - Sep-01-2018

Hi everyone,
I have quite a simple problem -
please look at my code snippet, this is my simple server:
import socket
def Main():
    
    host = 'localhost'
    port = 2222
    
    s = socket.socket()
    print(host)
    s.bind((host,port))

    s.listen(1)
    c,addr = s.accept()
    print("Connection from: " + str(addr) + "\n" + str(c))

    s.close()

if __name__ == '__main__':
    Main()
when it runs, it outputs just 'localhost'.
Next, this is the client on the same machine:
import socket

def Main():
    
    host = 'localhost'
    port = 2222
    
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((host,port))
    
    s.close()
    
     
if __name__ == '__main__':
    Main()
            
When it starts after the server I get the same error:
Error:
============== RESTART: E:/Progs/Python 3.6.3/tcpServerTest.py ============== localhost ============== RESTART: E:/Progs/Python 3.6.3/tcpClientTest.py ============== Traceback (most recent call last): File "E:/Progs/Python 3.6.3/tcpClientTest.py", line 15, in <module> Main() File "E:/Progs/Python 3.6.3/tcpClientTest.py", line 9, in Main s.connect((host,port)) ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it >>>
Well then, while I run TcpView from sysinternals I see four rows and somehow port 2222 is redirected(?) to another port:

-----------------------------------------------------local port-------------remote port------------------------
pythonw.exe--5620----TCP----127.0.0.1-----10137----0.0.0.0.0---------------------LISTENING
pythonw.exe--2960----TCP----127.0.0.1-----2222-----0.0.0.0.0---------------------LISTENING
pythonw.exe--5980----TCP----127.0.0.1-----10128----127.0.0.1------10125-------ESTABLISHED
pythonw.exe--5620----TCP----127.0.0.1-----10125----127.0.0.1-------10128------ESTABLISHED

If I start firefox on localhost:2222 it connects to the server and the server outputs:
Output:
============== RESTART: E:/Progs/Python 3.6.3/tcpServerTest.py ============== localhost Connection from: ('127.0.0.1', 10152) <socket.socket fd=444, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 2222), raddr=('127.0.0.1', 10152)> >>>

Notice that the remote port raddr is not 2222. Why?
What is redirecting port from 2222 to another?
How make my client connect to the server at the same port 2222?
I have windows 8, the same machine, the firewall is off, the router is off, no internet, no wifi while I carry out this experiment.


RE: tcp server/client port connection issue - Gribouillis - Sep-01-2018

Does replacing 'localhost' with '127.0.0.1' change anything?


RE: tcp server/client port connection issue - valshev - Sep-01-2018

No, it doesn't.
It looks like the windows has its own shadow proxy server