基于python實(shí)現(xiàn)簡(jiǎn)單C/S模式代碼實(shí)例
C/S模式就是指客bai戶端/服務(wù)器模式,du是計(jì)算機(jī)軟件協(xié)同工作的一種模式。zhi
由于Web瀏覽器的興起,B/S模式逐步取代了daoC/S模式,被更廣泛地應(yīng)用。隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的成熟和應(yīng)用普及,特別是局域網(wǎng)的發(fā)展、PC機(jī)的出現(xiàn),越來越多的用戶和企業(yè)開始使用計(jì)算機(jī)管理一些事務(wù)。
PC機(jī)的資源沒有大型、中型甚至小型主機(jī)豐富,但將多臺(tái)PC機(jī)聯(lián)成網(wǎng),必然會(huì)增加資源含量,各個(gè)用戶都在網(wǎng)絡(luò)上來共享所有資源。根據(jù)客戶/服務(wù)器(Client/Server簡(jiǎn)記為C/S)體系結(jié)構(gòu)的概念,至少用兩臺(tái)計(jì)算機(jī)來分別充當(dāng)客戶機(jī)和服務(wù)器角色。
服務(wù)器端代碼:
#!/usr/bin/pythonimport time, socket, threading# thread handle functiondef tcplink(sock, addr): print ’Accept new connection from %s:%s...’ % addr sock.send(’Welcome!’) while True: data = sock.recv(1024) time.sleep(1) if data == ’exit’ or not data: break sock.send(’Hello, %s!’ % data) sock.close() print ’Connection from %s:%s closed.’ % addr# create socket objects = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# listen ports.bind((’127.0.0.1’, 9999))# start listens.listen(5)# print promptprint ’Waiting for connection...’while True: # accept a new connection sock, addr = s.accept() # create new thread to handle tcp connection t = threading.Thread(target=tcplink, args=(sock, addr)) t.start()
客戶端代碼:
#!/usr/bin/python# import moduleimport socket# create TCP objects = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# connect sinas.connect((’127.0.0.1’, 9999))# receive welcomeprint s.recv(1024)for data in [’zjw’, ’ygl’, ’lele’]: # send data s.send(data) print s.recv(1024)while True: data = 1
設(shè)計(jì)思路還是那樣的,服務(wù)器端監(jiān)聽固定端口,等待連接,客戶端來連接,然后互相發(fā)送消息
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Hybris在idea中debug配置方法詳解2. 在idea中為注釋標(biāo)記作者日期操作3. XPath入門 - XSL教程 - 34. 通過CSS數(shù)學(xué)函數(shù)實(shí)現(xiàn)動(dòng)畫特效5. ASP.Net Core對(duì)USB攝像頭進(jìn)行截圖6. JSP靜態(tài)導(dǎo)入與動(dòng)態(tài)導(dǎo)入使用詳解7. ASP.NET MVC實(shí)現(xiàn)橫向展示購(gòu)物車8. .NET Core Web APi類庫(kù)內(nèi)嵌運(yùn)行的方法9. .NET6使用ImageSharp實(shí)現(xiàn)給圖片添加水印10. jsp cookie+session實(shí)現(xiàn)簡(jiǎn)易自動(dòng)登錄
