Owatch charles.xrandolph2 at
Sat Mar 9 16:26:15 CET 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)
    print("Connected to: ",HOST,)
    #-------------------Need 2 threads for handling incoming and outgoing messages--
    #       1: Create out_buffer:
    Buffer = []
    rlist,wlist,xlist =[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:
    # 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:
                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:


More information about the Python-list mailing list