I'm trying to understand socket programming in python by experimenting a little. I'm trying to create a server that you can connect to by telnet and that echoes what you type in the telnet prompt. I don't want to start using threads just yet. This is my code.

import socket

host = "127.0.0.1"
port = 8080

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

sock.bind((host,port))
sock.listen(1)
remote, address = sock.accept()
print "Connection from", address 



while True:
    data = sock.recv(1024)
    remote.send(data)

The server starts without errors, but when I connect with the telnet client I get, on the client side:

> telnet 127.0.0.1 8080
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
Connection closed by foreign host.

and on the server side:

> python server_test.py 
Connection from ('127.0.0.1', 35030)
Traceback (most recent call last):
  File "server_test.py", line 16, in <module>
    data = sock.recv(1024)
socket.error: [Errno 107] Transport endpoint is not connected

Can anyone tell me what this error comes from and how to solve it?

Great! Solved it...

Hi,
Can you tell me please how did you fix the problem ?!
Thanks!

Sorry, I don't quite remember and right now I don't have time to revisit the problem (master thesis deadline on thursday :) ) . What I do remember is that I solved it by following the advice in the link; Read the manual...

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.