"Ali Hamad" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED]
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,

Yes, you can send more than one message on a socket. The problem is likely in the server code. What does it look like? Also TCP is a streaming protocol. It has no concept of a start and end of message unless you implement something you can recognize as a complete message in the protocol.

-Mark

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to