http://stackoverflow.com/questions/15311450/my-chat-client-freezes-up-after-beginning-threads

Owatch charles.xrandolph2 at gmail.com
Sat Mar 9 10:26:15 EST 2013


I made a better chat client following help from people:

They told me that if I didn't want to be blocked on .recv when waiting for messages,          I would need to use threads, classes, functions, and queues to do so. 

So I followed some help a specific person gave me where I created a thread from a class and then defined a function that was supposed to read incoming messages and print them. 

I also created a function that allows you to enter stuff to be sent off. 

Thing is, when I run the program. Nothing happens. 

Can somebody help point out what is wrong? (I've asked questions and researched for 3 days, without getting anywhere, so I did try)



    from socket import *
    import threading
    import json
    import select
    
    print("Client Version 3")
    HOST = input("Connect to: ")
    PORT = int(input("On port: "))
    # Create Socket
    
    s = socket(AF_INET,SOCK_STREAM)
    s.connect((HOST,PORT))
    print("Connected to: ",HOST,)
    
    #-------------------Need 2 threads for handling incoming and outgoing messages--
    
    #       1: Create out_buffer:
    Buffer = []
    
    rlist,wlist,xlist = select.select([s],Buffer,[])
    
    class Incoming(threading.Thread):
        # made a function a thread
        def Incoming_messages():
            while True:
                for i in rlist:
                    data = i.recv(1024)
                    if data:
                        print(data.decode())
    
    # Now for outgoing data.
    def Outgoing():
        while True:
            user_input=("Your message: ")
            if user_input is True:
                Buffer += [user_input.encode()]
            for i in wlist:
                s.sendall(Buffer)
                Buffer = []


Thanks for taking a look, thanks also to Tony The Lion for suggesting this

If the code isnt done right, here's a link to view it, and download:

View: http://i1267.photobucket.com/albums/jj554/owatch/PPP_zps4beb891b.png
Download: http://www.mediafire.com/?u51a9b5axfffoxl



More information about the Python-list mailing list