اموزش ساخت پیام رسان با پایتون

به نام خدا من در این آموزش به شما یاد میدم چطور یک پیام رسان گرفیکی ساده بسازیم برای شروع اول کتابخانه های مورد نظر رو ایمپورت میکنیم

from tkinter import *
import socket
import threading

بعد صفحه وارد کردن ip و port برای انتخاب :

def set():
      global ip
       ip = str(i.get())
       global port
       port = int(p.get())
       r.destroy()
def ip():
      global r
      r = Tk()
      global i
      i = Entry(r)
      i.pack(fill = 'x')
     global p
     p = Entry(r)
     p.pack(fill = 'x')
     se = Button(r , text = 'set ip , port' , command = set)
     se.pack(fill = 'x')
     r.mainloop()
ip()

بعد برای انتخاب ip و port

s = socket.socket()
s.bind((ip , port))
s.listen()
con , addr = s.accept()


و برای گرافیک برنامه

win = Tk()
m = Entry(win)
m.pack(fill = 'x')
send= Button(win , text = 'send' , command = sends)
send.pack(fill = 'x')
win.mainloop()

برای تابع ارسال (بالای تعریف دکمه send بنویسید)

def sends():
      message = str(m.get())
      con.send(message.encode())
      l1 = Label(win , text = message)
      l1.pack(fill = 'x')

و برای رویداد (بین کد های ()win = Tkو ()win.mainloop)

def recv():
      while True:
      data = con.recv(1024).decode()
      l = Label(win , text = data, bg = 'black' , fg = 'green')
      l.pack(fill = 'x')

و در اخر threading رو انجام میدیم

send = threading.Thread(target=sends).start()
recv = threading.Thread(target=recv).start()

این کد که در بالا نوشتیم برای server بود این هم کد client

import socket
from tkinter import *
import threading
def set():
      global ip
      ip = str(i.get())
     global port
     port = int(p.get())
    r.destroy()
def ip():
      global r
      r = Tk()
     global i
     i = Entry(r)
     i.pack(fill = 'x')
     global p
     p = Entry(r)
     p.pack(fill = 'x')
     se = Button(r , text = 'connect' , command = set)
     se.pack(fill = 'x')
     r.mainloop()
ip()
win = Tk()
win.config(bg = 'black')
m = Entry(win)
m.pack(fill = 'x')
def sends():
      message = str(m.get())
      s.send(message.encode())
      l1 = Label(win , text = message)
      l1.pack(fill = 'x')
send= Button(win , text = 'send' , command = sends)
send.pack(fill = 'x')
s = socket.socket()
s.connect((ip , port))
def recev():
      while True:
      data = s.recv(1024).decode()
      l = Label(win , text = data , bg = 'black' , fg = 'green')
      l.pack(fill = 'x')
send = threading.Thread(target=sends).start()
recv = threading.Thread(target=recv).start()
win.mainloop()

خوب این آموزش به پایان رسید به وبلاگم سر بزنید:https://irnelm.blog.ir

تا مطلب بعد خدا حافظ