Basic Server/Client socket pair not working

Nicolas Couture nicolas.couture at gmail.com
Mon Aug 29 16:23:18 EDT 2005


Michael Goettsche wrote:
> Hi there,
>
> I'm trying to write a simple server/client example. The client should be able
> to send text to the server and the server should distribute the text to all
> connected clients. However, it seems that only the first entered text is sent
> and received. When I then get prompted for input again and press return,
> nothing gets back to me. Any hints on what I have done would be very much
> appreciated!
>
> Here's my code:
>
> ############ SERVER ##########
> import socket
> import select
>
> mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
> mySocket.bind(('', 11111))
> mySocket.listen(1)
>
> clientlist = []
>
> while True:
>    connection, details = mySocket.accept()
>    print 'We have opened a connection with', details
>    clientlist.append(connection)
>    readable = select.select(clientlist, [], [])
>    msg = ''
>    for i in readable[0]:

for i in readable:

>       while len(msg) < 1024:
>          chunk = i.recv(1024 - len(msg))
>          msg = msg + chunk
>
>    for i in clientlist:
>       totalsent = 0
>       while totalsent < 1024:
>          sent = i.send(msg)
>          totalsent = totalsent + sent
>
> ############## CLIENT ################
> import socket
> import select
>
> socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
> socket.connect(("127.0.0.1", 11111))
>
> while True:
>     text = raw_input("Du bist an der Reihe")
>     text = text + ((1024 - len(text)) * ".")
>     totalsent = 0
>     while totalsent < len(text):
>         sent = socket.send(text)
>         totalsent = totalsent + sent
>
>     msg = ''
>     while len(msg) < 1024:
>         chunk = socket.recv(1024 - len(msg))
>         msg = msg + chunk
>  
>     print msg




More information about the Python-list mailing list