Pada kesempatan kali ini Panduan Code akan membagikan sebuah aplikasi chat room multi client python terbaru untuk belajar socket. Dengan...
data:post.title

Chat Room Multi Client Python Terbaru Belajar Socket

Daftar Isi [Tampil]

    Pada kesempatan kali ini Panduan Code akan membagikan sebuah aplikasi chat room multi client python terbaru untuk belajar socket.

    Dengan aplikasi chat room multi client ini anda dapat mengirim pesan dengan aman dan pastinya terjamin karena servernya laptop anda sendiri.

    Tapi dengan catatan Anda kembangkan lagi script python socket ini agar lebih baik lagi.

    Pemaparan Chat Room Multi Client Python

    Aplikasi chat room multi client python adalah sebuah aplikasi yang memungkinkan anda untuk membuat sebuah chat room pribadi, dengan orang tertentu atau grup yang anda inginkan, chat room multi client python ini dapat anda kontrol dengan sepenuh-nya karena selver yang digunakan adalah laptop anda sendiri, tapi jangan khawatir dengan kapasitas laptop anda, karena aplikasi chat room multi client ini tidak memakan ruang banyak dan size-nya juga kecil.

    Jadi anda dapat mengatahui dan mengontrol semua client yang ikut masuk kedalam chat room yang anda miliki.

    Tapi tidak semudah itu client bisa masuk ke chat room multi client anda, si client yang ingin anda undang masuk kedalam chat room pribadi anda harus mempunyai sebuah file python yang bernama client.py dan mengetahui ip yang telah anda tetapkan pada chat room milik anda.

    Jadi aplikasi chat room multi client ini bisa Anda gunakan untuk bahan pembelajaran socket, dan bisa Anda kembangkan lagi agar lebih baik lagi.

    Dan aplikasi chat room multi client ini sangat dianjurkan untuk anda para programmer dan developer, kenapa sangat dianjurkan?, alasan-nya yang pertama melatih logika anda, yang kedua aman dari peretasan, ketiga sifat-nya sangat pribadi tidak ada yang tahu dan bisa masuk sembarangan ke dalam chat room anda.

    Untuk lebih jelas-nya lihat gambar dibawah ini, sehubungan Panduan Code menggunkan Kali Linux dan mencoba-nya di laptop sendiri, Jadi tampilan chat room multi client-nya lebih menarik.

    chat room multi client python

    Bagaimana cukup menarik bukan chat room multi client yang Panduan Code buat?.

    Pasti anda jadi kepingin punya juga kan chat room nya, kalau begitu ikuti panduan membuat chat room multi cliet berikut ini.

    Cara Membuat Chat Room Multi Client Python

    Untuk membuat chat room multi client ini anda harus sudah menginstall terlebih dahulu bahasa pemrograman python ke dalam komputer atau laptop anda.

    Jika sudah anda bisa menggunakan aplikasi pycharm agar lebih mudah dalam membuat-nya apabila anda menggunakan windows.

    Dan jika anda menggunakan linux, contoh-nya panduan code menggunakan Kali Linux anda bisa langsung membuatnya tanpa harus ada aplikasi tambahan, tapi jika ingin lebih mudah anda bisa menggunakan aplikasi Visual studio code.

    Langsung saja kita mulai membuat aplikasi chat room multi client python-nya, dan berikut adalah langkah-langkah yang harus anda ikuti.

    1. Untuk anda yang menggunakan pycharm, buka pycharm lalu buat new project dengan nama chat room multi client python.
    2. Setelah itu anda buat terbidahulu server.py nya untuk script server chat room anda.
    3. Caranya klik new file lalu pilih python dan berinama server, nantinya akan otomatis berubah menjadi selver.py
    4. Jika sudah anda copy code selver.py di bawah ini dan save. Untuk para pengguna linux anda hanya harus membuat code selver.py dan client.py di bawah ini.

    Code Selver.py

    import socket, select
    #Function to send message to all connected clients
    def send_to_all (sock, message):
    #Message not forwarded to server and sender itself
    for socket in connected_list:
    if socket != server_socket and socket != sock :
    try :
    socket.send(message)
    except :
    # if connection not available
    socket.close()
    connected_list.remove(socket)
    if __name__ == "__main__":
    name=""
    #dictionary to store address corresponding to username
    record={}
    # List to keep track of socket descriptors
    connected_list = []
    buffer = 4096
    port = 5001
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server_socket.bind(("localhost", port))
    server_socket.listen(10) #listen atmost 10 connection at one time

    connected_list.append(server_socket)
    print "\33[32m \t\t\t\tSERVER WORKING \33[0m" 
    while 1:
            
    rList,wList,error_sockets = select.select(connected_list,[],[])
    for sock in rList:
    #New connection
    if sock == server_socket:
    # Handle the case in which there is a new connection recieved through server_socket
    sockfd, addr = server_socket.accept()
    name=sockfd.recv(buffer)
    connected_list.append(sockfd)
    record[addr]=""
    #print "record and conn list ",record,connected_list
                    
                    #if repeated username
    if name in record.values():
    sockfd.send("\r\33[31m\33[1m Username already taken!\n\33[0m")
    del record[addr]
    connected_list.remove(sockfd)
    sockfd.close()
    continue
    else:
                        #add name and address
    record[addr]=name
    print "Client (%s, %s) connected" % addr," [",record[addr],"]"
    sockfd.send("\33[32m\r\33[1m Welcome to chat room. Enter 'by panduan code' anytime to exit\n\33[0m")
    send_to_all(sockfd, "\33[32m\33[1m\r "+name+" joined the conversation \n\33[0m")
    #Some incoming message from a client
    else:
    # Data from client
    try:
    data1 = sock.recv(buffer)
    #print "sock is: ",sock
    data=data1[:data1.index("\n")]
    #print "\ndata received: ",data
                        
                        #get addr of client sending the message
    i,p=sock.getpeername()
    if data == "by panduan code":
    msg="\r\33[1m"+"\33[31m "+record[(i,p)]+" left the conversation \33[0m\n"
    send_to_all(sock,msg)
    print "Client (%s, %s) is offline" % (i,p)," [",record[(i,p)],"]"
    del record[(i,p)]
    connected_list.remove(sock)
    sock.close()
    continue
    else:
    msg="\r\33[1m"+"\33[35m "+record[(i,p)]+": "+"\33[0m"+data+"\n"
    send_to_all(sock,msg)
                
                    #abrupt user exit
    except:
    (i,p)=sock.getpeername()
    send_to_all(sock, "\r\33[31m \33[1m"+record[(i,p)]+" left the conversation unexpectedly\33[0m\n")
    print "Client (%s, %s) is offline (error)" % (i,p)," [",record[(i,p)],"]\n"
    del record[(i,p)]
    connected_list.remove(sock)
    sock.close()
    continue

    5. Setelah anda membuat code selver.py kemudian anda buat satu file python lagi yaitu client.py caranya sama klik new file dan pilih python dan berinama cient.

    6. Jika sudah anda copy code client.py dibawah ini dan save.

    Code Client.py

    import socket, select, string, sys

    #Helper function (formatting)
    def display() :
    you="\33[33m\33[1m"+" You: "+"\33[0m"
    sys.stdout.write(you)
    sys.stdout.flush()

    def main():

        if len(sys.argv)<2:
            host = raw_input("Enter host ip address: ")
        else:
            host = sys.argv[1]

        port = 5001
        
        #asks for user name
        name=raw_input("\33[34m\33[1m CREATING NEW ID:\n Enter username: \33[0m")
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.settimeout(2)
        
        # connecting host
        try :
            s.connect((host, port))
        except :
            print "\33[31m\33[1m Can't connect to the server \33[0m"
            sys.exit()

        #if connected
        s.send(name)
        display()
        while 1:
            socket_list = [sys.stdin, s]
            
            # Get the list of sockets which are readable
            rList, wList, error_list = select.select(socket_list , [], [])
            
            for sock in rList:
                #incoming message from server
                if sock == s:
                    data = sock.recv(4096)
                    if not data :
                        print '\33[31m\33[1m \rDISCONNECTED!!\n \33[0m'
                        sys.exit()
                    else :
                        sys.stdout.write(data)
                        display()
            
                #user entered a message
                else :
                    msg=sys.stdin.readline()
                    s.send(msg)
                    display()

    if __name__ == "__main__":
        main()

    7. Sejauh ini sebenarnya anda sudah berhasil membuat chat room multi client python, langkah selanjutnya anda hanya tinggal memakai-nya.

    Cara Menggunakan Chat Room Multi Client Python

    1. Cara memakainya untuk pengguna windows anda bisa langsung mengklik run terminal pada kedua code diatas. Atau anda bisa membuka-nya lewat cmd, cara-nya anda buka cmd dan masuk ke directory project anda tadi lalu ketikkan perintah python server.py, kemudian buka cmd baru dan masuk ke directory project tadi dan ketikkan perintah python client.py localhost.  Kemudian isi nama anda dan enter. 
    2. Untuk para pengguna linux anda tinggal buka directory file-nya lewat terminal dan ketikkan python server.py, kemudian anda buka terminal baru dan buka directory yang sama dan ketikkan python client.py localhost. Jika sudah isi nama anda dan enter.

    Catatan:

    Anda harus menjalankan code selver.py dan code client.py, dan jika anda mencobanya di laptop sendiri anda harus menjalankan dua code clent.py agar anda dapat memakainya dengan seharusnya.

    Cukup Demikian panduan membuat dan menjalankan Chat room multi client python dari Panduan Code, semoga dapat bermanfaat bagi kita semua aamiin.

    Dan Panduan Code juga sarankan anda untuk membaca postingan tentang cara membuat kalkulator python, agar logika anda lebih terasah lagi.

    Akhir kata dari Panduan Code jangan lupa titik koma.

    Tambahan:

    Jika anda memiliki pertanyaan tentang chat room multi client yang Panduan Code bagikan silahkan untuk berkomentar di bawah ini.

    DONASI VIA PAYPAL Bantu berikan apresiasi jika artikelnya dirasa bermanfaat agar penulis lebih semangat lagi membuat artikel bermanfaat lainnya. Terima kasih.

    Donasi
    Hallo sobat panduan code, Anda dapat memberikan suport kepada kami dengan cara memberikan donasi, yang mana nantinya donasi tersebut akan digunakan untuk memperpanjang Domain Panduan code.

    BANK BRI:401101013389533 a/n ARIF NOERWAHIDIN
    PULSA : 082126546564
    PAYPAL : Panduan Code
    Done