成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

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

python實現(xiàn)多人聊天服務器以及客戶端

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

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

所用python的知識點:

網(wǎng)絡編程:socket

多線程:threading

圖形化編程:tkinter

首先要模擬出一個服務器,以供客戶端連接,注意這里的要用死循環(huán),要讓服務區(qū)一直處于開放的狀態(tài)

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

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

第一個py文件--服務器

import tkinter
import socket, threading

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

然后點擊啟動

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

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

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

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

然后點擊發(fā)送

然后打開02.py運行后的界面會出現(xiàn)下面的

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

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

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

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

巨人網(wǎng)絡通訊聲明:本文標題《python實現(xiàn)多人聊天服務器以及客戶端》,本文關鍵詞  python,實現(xiàn),多人,聊天,服務器,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python實現(xiàn)多人聊天服務器以及客戶端》相關的同類信息!
  • 本頁收集關于python實現(xiàn)多人聊天服務器以及客戶端的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    波多野结衣之无限发射| 久久精品日产第一区二区| 91黄色在线视频| sm久久捆绑调教精品一区| 亚洲精品在线一区二区| 免费在线观看一区二区三区| 韩日精品视频一区| 天堂在线亚洲视频| 小嫩苞一区二区三区| 色呦呦呦在线观看| 国产精品亚洲lv粉色| 欧美乱妇23p| 国产www在线观看| 在线观看免费黄视频| 国产免费无码一区二区视频| 石原莉奈一区二区三区在线观看| 风间由美一区二区三区在线观看| 一卡二卡三卡日韩欧美| 国产一区二区自拍视频| 麻豆tv入口在线看| 久热精品在线观看| 性视频一区二区三区| 日韩—二三区免费观看av| 日产精品久久久一区二区| 特级丰满少妇一级aaaa爱毛片| 亚洲人成77777男人| 免费三片60分钟| 亚洲aaaaaaa| 精品国产露脸精彩对白| 欧美成人免费在线观看| 啊v视频在线一区二区三区| 青青影院在线观看| 成人亚洲精品777777大片| 黄色在线观看网站| 天天干天天爱天天操| 国产精品9191| 污污视频在线看| 在线播放国产精品二区一二区四区| 一本大道久久a久久综合婷婷| 国产欧美视频在线观看| 2025国产精品自拍| 先锋影音欧美性受| 亚洲图片欧洲图片日韩av| 色婷婷av一区二区三区在线观看| 欧美精品video| 成人激情视频免费在线| 久久99久久99精品免视看婷婷| 国产乱码午夜在线视频| 日韩成人精品视频在线观看| 最新四虎影在线在永久观看www| 欧美国产日韩亚洲一区| 日本中文字幕视频| 成人免费乱码大片a毛片软件| 91成人在线观看国产| 午夜一区二区三区在线观看| 菠萝菠萝蜜在线观看| 欧美黑人孕妇孕交| 50一60岁老妇女毛片| 亚洲aⅴ男人的天堂在线观看| 日本一二三区视频免费高清| 成年人黄色在线观看| 99国产精品久久久久久久成人| 无人区乱码一区二区三区| 国产av天堂无码一区二区三区| 91精品久久久| 91中文字精品一区二区| 亚洲国产第一区| 六月丁香激情网| 国产综合在线播放| 品天堂xxxx高清| 风间由美一二三区av片| 欧美日韩精品免费观看视一区二区| 久久成人免费日本黄色| 成人性生交视频免费观看| 久久久久香蕉视频| 免费网站看av| 亚洲六月丁香色婷婷综合久久| 免费97视频在线精品国自产拍| 中文字幕丰满乱码| 1024国产在线| 色综合视频在线观看| 久久久久亚洲av无码麻豆| 精品肉辣文txt下载| 国产大陆精品国产| 牛牛澡牛牛爽一区二区| 91精彩视频在线观看| 国产va亚洲va在线va| 欧美韩国日本精品一区二区三区| 久久国产精品二区| 久草精品电影| 动漫视频在线一区| 久久精品成人欧美大片免费| 亚洲综合精品视频| 欧美日韩中字一区| 色乱码一区二区三区网站| 欧美特级www| 国产精品一 二 三| 国产精品夫妻自拍| 成人久久18免费网站漫画| 久久久久999| 欧美sss在线视频| 国产黄色免费在线观看| 激情中国色综合| 国产精品福利在线播放| 中文字幕精品视频| 欧美午夜www高清视频| 欧美 日韩 国产 一区二区三区| 伦理一区二区| 欧美性xxxx禁忌| www.成人av.com| 国产精品高潮呻吟久久av野狼| 伊人久久大香| 精品国产乱码久久久久酒店| 国产精品99精品无码视亚| 久久久久高潮毛片免费全部播放| 天堂视频中文在线| 成人激情午夜影院| 一区二区三区免费在线观看视频| 一个人看的免费视频色| 最新久久zyz资源站| 国产黄色大片免费看| 免费福利视频网站| 天堂视频在线免费观看| 91成人免费观看| 欧美色图天堂网| 国产亚洲观看| 日韩精品专区在线| 欧美日韩国产综合草草| 日韩综合另类| 亚洲国产精品激情在线观看| 色哟哟一区二区| 欧美风情在线视频| 欧美黄网在线观看| 亚洲精品裸体| 国产精品海角社区在线观看| 三年片免费观看大全| 日韩不卡视频在线观看| 欧美一级裸体视频| 中文字幕成人在线视频| 性生活一级大片| 国产在线观看91一区二区三区| 欧美zozozo| 蜜桃a∨噜噜一区二区三区| 日本不卡一二三区黄网| 一区二区三区影视| 天堂va久久久噜噜噜久久va| 成年在线播放小视频| 在线黄色的网站| 国产午夜一区| 欧美成人免费在线| 欧洲美女亚洲激情| 黄色一级片在线免费观看| 免费国产羞羞网站视频| 久久精品国产一区二区三区日韩| 久久久久北条麻妃免费看| 亚洲kkk444kkk在线观看| 国产欧美久久久精品免费| 国产成人福利短视频app| 国产精品久久久久久久乖乖| 激情av在线| 欧美年轻男男videosbes| 久久99免费视频| 日日噜噜夜夜狠狠久久丁香五月| 校花撩起jk露出白色内裤国产精品| 天堂精品视频| 一区二区xxx| 99久久精品免费看国产一区二区三区| 美女免费视频一区二区| 国产精品久久久久无码av色戒| 深夜视频一区二区| 精品国产一区二区三区四区四| 男人添女荫道口女人有什么感觉| 亚洲女人****多毛耸耸8| 黄色国产网站在线观看| 亚洲乱码精品| 一区二区精品视频| 亚洲福利视频二区| 亚洲国产精品日韩专区av有中文| 希岛爱理一区二区三区av高清| 欧美丰满熟妇bbb久久久| 写真福利片hd在线播放| 国产激情在线观看视频| 欧美 日韩 国产 成人 在线观看| 亚洲自拍偷拍一区| 国产中文字幕在线| 97超碰免费在线观看| 青青草原综合久久大伊人精品| 欧美二区在线视频| 国产91久久婷婷一区二区| av中文字幕一区二区| 天天射夜夜骑| 久久天天做天天爱综合色| 亚洲精品天堂成人片av在线播放| 97在线视频人妻无码| 国产99久久精品一区二区| 天天综合入口| 91精品国产综合久久精品性色| 日韩经典一区| 色婷婷av一区| 91免费网站视频| 久久影院亚洲| 高清中文字幕一区二区三区| 久久久久毛片| 综合欧美国产视频二区| 亚洲国产精品黑人久久久| 国产欧美日韩视频一区二区三区| 精品久久久久久亚洲国产300| 国产精品成人免费精品自在线观看| 欧美日韩国产另类不卡| 久久精品国产亚洲av麻豆色欲| 麻豆亚洲精品| 欧美激情精品久久久久| 国产自摸综合网| 成人在线观看视频app| 桃色av一区二区| 国产一区日韩| 日韩欧美一区二区三区久久婷婷| yw.139尤物在线精品视频| 欧洲一级视频| 日本在线视频免费观看| 国产又大又黄又粗的视频| 午夜cr在线观看高清在线视频完整版| 成人深夜福利app| 1区2区3区精品视频| 亚州精品一二三区| 国产亚洲精品久久久网站好莱| 任我爽精品视频在线播放| 欧美精品精品精品精品免费| 欧美大黑帍在线播放| 国产精品宾馆在线精品酒店| 欧美一级视频一区二区| 少妇无套高潮一二三区| 欧美人与物videos另类| 色先锋av资源在线| 亚洲精品电影网站| 天天操精品视频| av日韩一区二区三区| 国产精品久久久久免费a∨| 亚洲国产激情一区二区三区| 黄色三级电影网站| 欧美一区二三区| 久久99精品久久久久久青青91| 岛国精品在线播放| 日本成片免费高清| 欧美1—12sexvideos| 欧美日本成人| 一区二区三区免费观看| 国产精品女同一区二区| 这里只有精品国产| 国产玉足脚交久久欧美| 黄色免费视频观看| 97在线观看免费观看高清| 97国产精品久久| 日日干夜夜草| 99久久国产免费看| 国产夫绿帽单男3p精品视频| 中文字幕亚洲成人| 国产亚洲第一区| 国产精品高清一区二区| bt在线麻豆视频| 亚洲欧洲www| 免费在线精品视频| 国产ts丝袜人妖系列视频| 5g影院5g电影天天爽快| 一区二区传媒有限公司| 视频一区二区三区四区五区| 成人欧美一区二区三区视频网页| 国产91在线播放| 精品国产av 无码一区二区三区| 亚洲视频在线观看一区二区| 97免费在线视频| 欧美性xxxxx极品视频| 草莓视频性福宝| 中文字幕第一页av| 水蜜桃免费高清视频在线播放| 中国女人内谢69xxxx免费视频| 久热中文字幕| 91麻豆国产福利在线观看宅福利| 偷拍自拍一区| 亚洲伦理网站| 5566中文字幕一区二区电影| 欧美少妇激情| 欧美日韩国产首页| 亚洲欧美日本免费| 一级黄色片国产| 国产精品高潮视频| 视频福利一区| 欧美三级欧美一级| 色婷婷久久久| 久久资源亚洲| 毛片中文在线观看| 日韩中文字幕一区二区| 日韩三级不卡| 亚洲制服丝袜一区| 在线天堂一区av电影| 亚洲精品动漫100p| 欧美激情一区二区三区在线| 国产欧美高清视频在线| 久久久久久免费视频| 人人妻人人澡人人爽| 欧美二区在线| 天天摸天天碰天天爽天天弄| 免费观看又污又黄在线观看国产| 成人av一区二区三区| 欧美做受高潮1| 尤物99国产成人精品视频| 678五月天丁香亚洲综合网| 91免费视频网站| 天天摸夜夜添狠狠添婷婷| 一色屋色费精品视频在线观看| 日日噜噜噜噜夜夜爽亚洲精品| 亚洲精品午夜久久久久久久| 中文字幕一区二区三区欧美日韩| 国产日韩欧美在线观看视频| 欧美永久精品| 久久黄色影视| 精品人妻少妇嫩草av无码| 久久综合国产精品台湾中文娱乐网| 四虎影视最新网址| 欧美一级高清大全免费观看| 色www永久免费视频首页在线| 韩国一区二区三区美女美女秀| 99er热精品视频| 日本三级日本三级日本三级极| 欧美挤奶吃奶水xxxxx| 国产 xxxx| jizzjizz中国精品麻豆| 综合日韩在线|