Socket Question

Mark Tolonen M8R-yfto6h at mailinator.com
Wed Oct 1 22:51:21 EDT 2008


"Ali Hamad" <ali.hamad34 at gmail.com> wrote in message 
news:mailman.1858.1222894062.3487.python-list at python.org...
> 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




More information about the Python-list mailing list