Socket Question

Ali Hamad ali.hamad34 at gmail.com
Tue Sep 30 01:01:02 CEST 2008


Hello All :

A socket question from a networking newbie.  I need to create
a server that:

1) receive a message from client.
2) check that message and response to it.
3) the client get the server message and send another message.
4) finally, the server receive the message and close the connection.

I have successfully done this. However, I couldn't use the same socket
to send the second message
to the server. I have googled but all the examples are only for sending
one message and receiving the response.

in my client code, I have :

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('127.0.0.1', 1888))
s.send("1st message")
response = s.recv(1024)
validate(response)
s.send("2nd message")
response2 = s.recv(1024)
s.close()

However, I got the first response just fine from the server but the
second message didn't get to the server.

So, the solution I came up with is to send the 1st message, close the
socket, create new socket,
and send the 2nd message.

I came up with something like :

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('127.0.0.1', 1888))
s.send("1st message")
response = s.recv(1024)
s.close()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('127.0.0.1', 1888))
s.send("2nd message")
response = s.recv(1024)
s.close()

and it works !

My Question :

is it possible to send/receive from the same socket more than one message ?

Thank you for your assistance in advance,



More information about the Python-list mailing list