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
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to