婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > python實現多人聊天服務器以及客戶端

python實現多人聊天服務器以及客戶端

熱門標簽:銀川電話機器人電話 預覽式外呼系統 長春極信防封電銷卡批發 電銷機器人錄音要學習什么 煙臺電話外呼營銷系統 外賣地址有什么地圖標注 如何地圖標注公司 企業彩鈴地圖標注 上海正規的外呼系統最新報價

本文實例為大家分享了python實現多人聊天服務器以及客戶端,供大家參考,具體內容如下

所用python的知識點:

網絡編程:socket

多線程:threading

圖形化編程:tkinter

首先要模擬出一個服務器,以供客戶端連接,注意這里的要用死循環,要讓服務區一直處于開放的狀態

其次要運用多線程,因為多線程共享變量而且可以同時并發的執行操作,否則服務器就只可以連接一個客戶端

下面先附上代碼后在解釋其怎么操作:

第一個py文件--服務器

import tkinter
import socket, threading

win = tkinter.Tk()  # 創建主窗口
win.title('模擬服務器')
win.geometry("400x400+200+20")
users = {}#用戶字典,也可以連接數據庫


def run(ck, ca):
    userName = ck.recv(1024)#接受客戶端發送的信息以1k作為單位這里接受到的信息為byte類型
    users[userName.decode("utf-8")] = ck#解碼并儲存用戶的信息
    #print(users)
    printStr = "" + userName.decode("utf-8") + "連接\n"#在連接顯示框中顯示是否連接成功
    text.insert(tkinter.INSERT, printStr)

    while True:
        rData = ck.recv(1024)#接受客戶端發送的信息以1k作為單位這里接受到的信息為byte類型
        dataStr = rData.decode("utf-8")
        infolist = dataStr.split(":")#分割字符串從而得到所要發送的用戶名和客戶端所發送的信息
        users[infolist[0]].send((userName.decode("utf-8") + "說" + infolist[1]).encode("utf"))
        #要發送信息的客戶端向目標客戶端發送信息

def start():
    ipStr = eip.get()#從輸入端中獲取ip
    portStr = eport.get()#從輸入端中獲取端口,注意端口取得時候不能被占用(可以取8080,9876,等)
    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)#socked所準守ipv4或ipv6,和相關協議的
    server.bind((ipStr, int(portStr)))#綁定ip和端口號!!!1:注意輸入的端口號是str型而這里的要傳入int型
    #2:bind()的參數是一個元組的形式
    server.listen(10)#設置監聽,和設置連接的最大的數量
    printStr = "服務器啟動成功\n"#,是否連接成功
    text.insert(tkinter.INSERT, printStr)#顯示在信息窗口中
    while True:#這里用死循環是因為模擬的服務器要一直運行
        ck, ca = server.accept()#接受所連接的客戶端的信息
        # 其中ca是ip和端口號組成的元組,ck有關客戶端的信息
        t = threading.Thread(target=run, args=(ck, ca))#每連接一個客戶端就開啟一個線程
        #其中Thread函數中的傳入函數的參數也是以元組的形式
        t.start()#開啟線程


def startSever():
    s = threading.Thread(target=start)#啟用一個線程開啟服務器
    s.start()#開啟線程

#下面是關于界面的操作
labelIp = tkinter.Label(win, text='ip').grid(row=0, column=0)
labelPort = tkinter.Label(win, text='port').grid(row=1, column=0)
eip = tkinter.Variable()
eport = tkinter.Variable()
entryIp = tkinter.Entry(win, textvariable=eip).grid(row=0, column=1)
entryPort = tkinter.Entry(win, textvariable=eport).grid(row=1, column=1)
button = tkinter.Button(win, text="啟動", command=startSever).grid(row=2, column=0)
text = tkinter.Text(win, height=5, width=30)
labeltext = tkinter.Label(win, text='連接消息').grid(row=3, column=0)
text.grid(row=3, column=1)
win.mainloop()

第二個py文件---客戶端

import tkinter
import socket
import threading

win = tkinter.Tk()
win.title("客戶端2")
win.geometry("400x400+200+20")

ck = None#用于儲存客戶端的信息


def getInfo():
    while True:
        data = ck.recv(1024)#用于接受服務其發送的信息
        text.insert(tkinter.INSERT, data.decode("utf-8"))#顯示在信息框上


def connectServer():
    global ck
    ipStr = eip.get()
    portStr = eport.get()
    userStr = euser.get()
    client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)#socked所準守ipv4或ipv6,和相關協議的
    client.connect((ipStr, int(portStr)))#連接ip和端口號!!!1:注意輸入的端口號是str型而這里的要傳入int型
    #2:bind()的參數是一個元組的形式
    client.send(userStr.encode("utf-8"))
    ck = client

    t = threading.Thread(target=getInfo)
    t.start()


def sendMail():
    friend = efriend.get()
    sendStr = esend.get()
    sendStr = friend + ":" + sendStr
    ck.send(sendStr.encode("utf-8"))


#下面是界面
labelUse = tkinter.Label(win, text="userName").grid(row=0, column=0)
euser = tkinter.Variable()
entryUser = tkinter.Entry(win, textvariable=euser).grid(row=0, column=1)

labelIp = tkinter.Label(win, text="ip").grid(row=1, column=0)
eip = tkinter.Variable()
entryIp = tkinter.Entry(win, textvariable=eip).grid(row=1, column=1)

labelPort = tkinter.Label(win, text="port").grid(row=2, column=0)
eport = tkinter.Variable()

entryPort = tkinter.Entry(win, textvariable=eport).grid(row=2, column=1)

button = tkinter.Button(win, text="啟動", command=connectServer).grid(row=3, column=0)
text = tkinter.Text(win, height=5, width=30)
labeltext= tkinter.Label(win, text="顯示消息").grid(row=4, column=0)
text.grid(row=4, column=1)

esend = tkinter.Variable()
labelesend = tkinter.Label(win, text="發送的消息").grid(row=5, column=0)
entrySend = tkinter.Entry(win, textvariable=esend).grid(row=5, column=1)

efriend = tkinter.Variable()
labelefriend= tkinter.Label(win, text="發給誰").grid(row=6, column=0)
entryFriend = tkinter.Entry(win, textvariable=efriend).grid(row=6, column=1)

button2 = tkinter.Button(win, text="發送", command=sendMail).grid(row=7, column=0)
win.mainloop()

這里的客戶端可以是多個,也就是將第二個py文件復制幾分并分別儲存在不同的文件中

這里注意:在pycharm中最好在一個項目中打開

1:將第一個文件命名為sever.py然后運行sever.py文件會出現

其中第一行表示你的主機的ipv4地址,如果你用的window,不知道的可以打開cmd后輸入ipconfig可以看到你的ipv4地址

第二行表示的是端口,這里最好用大一點8080或9876等,要不就會出現端口占用情況,這里我用9876

最后輸入前兩行后點擊啟動

2、將第二個文件多復制遍,分別命名為01.py,02.py......,運行01.py文件

這里第一行輸入的是你的用戶名,注意可以是任意的字符

第二行輸入的是你要連接的服務器的ip這里寫你的ip(和上面的ip一樣)

第三行輸入的是端口注意第一個圖上寫的端口保持一致上

然后點擊啟動

然后在運行02.py,重復01.py中的操作但是注意用戶名不能相同,二ip和端口號是相同的

如果你想更多的連接更多的客戶端可以運行0.3.py重復02.py操作

3、到這里假設你創建了01.py和02.py并運行其中0.1.py中的userName為123,02.py的userName為456并且連個ip和端口號和sever.py中的ip和端口號相同,然后就可以操作兩個人的聊天了

打開運行01.py后的界面輸入

然后點擊發送

然后打開02.py運行后的界面會出現下面的

這樣就實現了用python模擬多人聊天服務器以及客戶端(帶圖形化界面)的目標。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • python的tkinter布局之簡單的聊天窗口實現方法
  • 教你用Python創建微信聊天機器人
  • python操作微信自動發消息的實現(微信聊天機器人)
  • 基于Python如何使用AIML搭建聊天機器人
  • 快速實現基于Python的微信聊天機器人示例代碼
  • Python實現聊天機器人的示例代碼
  • Python QQBot庫的QQ聊天機器人
  • python實現聊天小程序
  • Python基于Socket實現的簡單聊天程序示例
  • 使用Python AIML搭建聊天機器人的方法示例

標簽:湖北 潮州 盤錦 西寧 宜昌 上饒 佳木斯 珠海

巨人網絡通訊聲明:本文標題《python實現多人聊天服務器以及客戶端》,本文關鍵詞  python,實現,多人,聊天,服務器,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python實現多人聊天服務器以及客戶端》相關的同類信息!
  • 本頁收集關于python實現多人聊天服務器以及客戶端的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    日韩美女天天操| 久久久综合九色合综国产精品| 色综合久久99| 亚洲国产三级在线| 亚洲aⅴ怡春院| 成人久久视频在线观看| 91久久精品一区二区| 国产亚洲精品7777| 日韩经典一区二区| 国产精品卡一卡二| 懂色av中文字幕一区二区三区| 欧美午夜不卡在线观看免费| 久久久国产综合精品女国产盗摄| 亚洲线精品一区二区三区八戒| 国产一区二区三区av电影| 欧美一级视频精品观看| 久久97超碰国产精品超碰| 精品一区二区免费在线观看| 欧美国产日本视频| 亚洲成av人片一区二区| 日韩码欧中文字| 亚洲蜜桃精久久久久久久| 亚洲综合色成人| 6080国产精品一区二区| 青青草原综合久久大伊人精品优势| 在线不卡欧美精品一区二区三区| 亚洲欧洲美洲综合色网| 91欧美一区二区| 亚洲成人免费av| 欧美一级久久久| 韩国av一区二区三区在线观看| 欧美xxxxxxxxx| av在线不卡观看免费观看| 国产日韩影视精品| 成人自拍视频在线观看| av午夜一区麻豆| 色老头久久综合| 欧美一区二区精美| 图片区小说区区亚洲影院| 亚洲黄色免费网站| 亚洲国产欧美另类丝袜| 中文字幕一区二区三区av | 国产精品影视网| 亚洲国产精品一区二区www在线| 国产精品的网站| 不卡视频免费播放| 欧美精品一区二区三区一线天视频| 日韩女优毛片在线| 国产蜜臀97一区二区三区| 自拍偷拍亚洲激情| 日本系列欧美系列| 国产成人av电影在线观看| 国产一区不卡视频| 美女尤物国产一区| 处破女av一区二区| 欧美日韩成人在线一区| 国产91精品免费| 亚洲欧美激情视频在线观看一区二区三区| 不卡一区在线观看| 在线亚洲+欧美+日本专区| 91首页免费视频| 欧美一级午夜免费电影| 亚洲欧美色一区| 久久99精品国产91久久来源| 免费美女久久99| 成人精品免费看| 欧美一区二区精品久久911| 国产无人区一区二区三区| 一区二区三区四区视频精品免费| 美女脱光内衣内裤视频久久网站| 成人国产精品免费观看视频| 日韩一级完整毛片| 亚洲国产sm捆绑调教视频| 99久久免费精品| 久久蜜桃av一区二区天堂 | 成人一区二区三区| 欧美日韩视频一区二区| 国产目拍亚洲精品99久久精品| 日韩高清在线一区| 在线亚洲一区观看| 国产日韩av一区| 亚洲精选一二三| 成人国产精品免费观看| 精品国产第一区二区三区观看体验 | 国产精品一区二区久久不卡 | 亚洲一区二区高清| 97久久精品人人做人人爽50路| 99久久久久免费精品国产| 久久麻豆一区二区| 国产在线麻豆精品观看| 日韩一卡二卡三卡国产欧美| 亚洲成a人v欧美综合天堂下载| av网站一区二区三区| 国产精品视频看| 国产成人av一区二区| 久久精品视频一区| 国产成人夜色高潮福利影视| 久久人人爽爽爽人久久久| 久久99在线观看| 精品成人一区二区| 国产一区二区三区精品欧美日韩一区二区三区 | 精品一区二区三区不卡| av在线播放一区二区三区| 久久精品一级爱片| 蜜桃视频在线观看一区| 欧美肥妇bbw| 亚洲午夜精品网| 91成人网在线| 亚洲精品成人天堂一二三| 色噜噜狠狠一区二区三区果冻| 最新日韩在线视频| 成人精品视频网站| 中文字幕亚洲一区二区av在线| av成人动漫在线观看| 国产精品久久久久国产精品日日| 成人在线视频首页| 综合亚洲深深色噜噜狠狠网站| 国产精品99精品久久免费| 国产亚洲成av人在线观看导航 | 精品日韩在线一区| 国产91精品一区二区麻豆亚洲| 中文字幕一区二区三区不卡| 色8久久人人97超碰香蕉987| 亚洲国产精品久久人人爱蜜臀 | 亚洲日本电影在线| 欧美日韩精品三区| 久久97超碰色| 日本福利一区二区| 亚洲成在人线在线播放| 综合亚洲深深色噜噜狠狠网站| 亚洲美女一区二区三区| 精品国产一区二区精华| 欧美中文字幕一区| 综合在线观看色| 在线观看欧美日本| 日韩高清中文字幕一区| 久久久精品一品道一区| 色综合久久综合网97色综合| 天天免费综合色| 国产日产欧产精品推荐色 | 国产高清在线观看免费不卡| 亚洲欧洲日产国码二区| 91超碰这里只有精品国产| 国产福利精品导航| 五月天一区二区| 国产精品网站在线| 3751色影院一区二区三区| 懂色av一区二区夜夜嗨| 视频一区视频二区中文| 日韩一区在线播放| 日韩欧美专区在线| 色呦呦日韩精品| 国产激情视频一区二区在线观看 | 色综合视频在线观看| 精品一区二区三区在线视频| 亚洲乱码日产精品bd| youjizz国产精品| 精品亚洲国产成人av制服丝袜| 精品av久久707| 欧美精品日日鲁夜夜添| 91麻豆国产在线观看| 国内欧美视频一区二区| 亚洲国产人成综合网站| 亚洲同性gay激情无套| 精品久久久三级丝袜| 欧美三区在线视频| 91蜜桃网址入口| 国产成人av资源| 久久av老司机精品网站导航| 热久久久久久久| 日本午夜精品一区二区三区电影| 亚洲午夜av在线| 亚洲中国最大av网站| 亚洲男人的天堂在线观看| 中文字幕一区二区三区视频| 国产精品天天看| 欧美激情一区二区三区不卡| 精品国产乱码久久久久久蜜臀 | 欧美日韩国产经典色站一区二区三区 | 粉嫩aⅴ一区二区三区四区五区| 精品亚洲porn| 精品无人码麻豆乱码1区2区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| www.欧美日韩国产在线| 国产成人精品一区二区三区网站观看| 性感美女极品91精品| 一区二区在线观看不卡| 亚洲精品乱码久久久久久久久 | 中文字幕亚洲精品在线观看| 国产欧美一区二区精品秋霞影院| 精品少妇一区二区三区视频免付费| 精品少妇一区二区三区免费观看| 日韩一区二区影院| 欧美v亚洲v综合ⅴ国产v| 久久蜜臀精品av| 国产精品视频九色porn| **网站欧美大片在线观看| 亚洲美女区一区| 亚洲丰满少妇videoshd| 美日韩一级片在线观看|