Hello大家好,今天說一下python的socket編程,基于python的socket通信的文本框網絡聊天
成都創新互聯公司專注于海陵網站建設服務及定制,我們擁有豐富的企業做網站經驗。 熱誠為您提供海陵營銷型網站建設,海陵網站制作、海陵網頁設計、海陵網站官網定制、重慶小程序開發服務,打造海陵網絡公司原創品牌,更為您提供海陵網站排名全網營銷落地服務。首先,實驗環境:
一個云服務器(我們這里是用的阿里云,大家將就自己的條件吧);
類Unix操作系統(如Mac OS,Linux等);
Windows系列操作系統。
在這里,我使用的是阿里云,Mac OSX,Windows XP(在mac上的一個虛擬機)。
Server.py
# -*- coding: utf-8 -*- #!/usr/local/bin/python import socket import sys import threading con = threading.Condition() HOST = "云空間的IP地址" PORT = 端口 data = '' s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) print 'Socket created' s.bind((HOST, PORT)) s.listen(10) print 'Socket now listening' def clientThreadIn(conn, nick):#開辟線程 global data while True:#接受客戶端數據 try: temp = conn.recv(1024) if not temp: conn.close()#連接關閉 return NotifyAll(temp) print data except: NotifyAll(nick + " leaves the room!") print data return def NotifyAll(sss):#廣播 global data if con.acquire(): data = sss con.notifyAll() con.release() def ClientThreadOut(conn, nick):#客戶端輸出 global data while True: if con.acquire(): con.wait() if data: try: conn.send(data) con.release() except: con.release() return while 1: conn, addr = s.accept() print 'Connected with ' + addr[0] + ':' + str(addr[1]) nick = conn.recv(1024) NotifyAll('Welcome ' + nick + ' to the room!') print data print str((threading.activeCount() + 1) / 2) + ' person(s)!' conn.send(data) threading.Thread(target = clientThreadIn , args = (conn, nick)).start()#開辟線程 threading.Thread(target = ClientThreadOut , args = (conn, nick)).start() s.close()
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網站欄目:python實現文本界面網絡聊天室-創新互聯
文章起源:http://vcdvsql.cn/article32/dsdopc.html
成都網站建設公司_創新互聯,為您提供網站導航、響應式網站、電子商務、網站設計、ChatGPT、App設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯