[Tutor] Socket programming

Alan Gauld alan.gauld at btinternet.com
Sat Jan 3 14:20:01 CET 2015

On 03/01/15 11:48, pramod gowda wrote:

> client code:
> import socket
> client_socket=socket.socket()
> server_address=''
> server_port= 80

see below regarding port numbers

> print("hello")
> client_socket.connect((server_address,server_port))
> print("hello")
> data=client_socket.recv(1024)
> print(data)
> client_socket.close()

I assume it is this code that is not doing what you expect?
Try using more descriptive print statements.
Also, when debugging, never use a print that could be blank,
always have a fixed string so you can see it. So instead of



print('Received: ', data)

That way you can see that data was empty rather than that
the print didn't execute.

I'd also put a print(finished') or similar after closing
the socket.

> server code:
> import socket
> server_socket=socket.socket()
> server_name=''
> server_port= 80

port 80 is usually reserved for http traffic, better
to choose a port number greater than 1024 for user

> server_socket.bind((server_name,server_port))
> server_socket.listen(1)

I'd up the queue size to at least 3  or 5.
You are not leaving much room for errors.

> while True:
>      print("hello")
>      c,address=server_socket.accept()
>      print("we got connection from:",address)

Is this print appearing OK?

>      c.send("hello,hw ru")

I'd add a print here too, to verify that the send worked.

>      c.close()

> I am not getting the output, i am using windows 7 OS,pyhton ver:..
> please  check and give me the solution.

It's not clear what you mean by "the output".
Are you getting anything printed? At the client and the server?

It might help to show us a cut n paste from both client
and server.

Alan G
Author of the Learn to Program web site
Follow my photo-blog on Flickr at:

More information about the Tutor mailing list