基于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),越來(lái)越多的用戶和企業(yè)開(kāi)始使用計(jì)算機(jī)管理一些事務(wù)。
PC機(jī)的資源沒(méi)有大型、中型甚至小型主機(jī)豐富,但將多臺(tái)PC機(jī)聯(lián)成網(wǎng),必然會(huì)增加資源含量,各個(gè)用戶都在網(wǎng)絡(luò)上來(lái)共享所有資源。根據(jù)客戶/服務(wù)器(Client/Server簡(jiǎn)記為C/S)體系結(jié)構(gòu)的概念,至少用兩臺(tái)計(jì)算機(jī)來(lái)分別充當(dāng)客戶機(jī)和服務(wù)器角色。
服務(wù)器端代碼:
#!/usr/bin/python
import time, socket, threading
# thread handle function
def 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 object
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# listen port
s.bind(('127.0.0.1', 9999))
# start listen
s.listen(5)
# print prompt
print '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 module
import socket
# create TCP object
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# connect sina
s.connect(('127.0.0.1', 9999))
# receive welcome
print 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)聽(tīng)固定端口,等待連接,客戶端來(lái)連接,然后互相發(fā)送消息
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python Socket網(wǎng)絡(luò)編程實(shí)現(xiàn)C/S模式和P2P
- python單線程文件傳輸?shù)膶?shí)例(C/S)
- python基于C/S模式實(shí)現(xiàn)聊天室功能
- Python實(shí)現(xiàn)基于C/S架構(gòu)的聊天室功能詳解
- Python socket套接字實(shí)現(xiàn)C/S模式遠(yuǎn)程命令執(zhí)行功能案例
- Python socket C/S結(jié)構(gòu)的聊天室應(yīng)用實(shí)現(xiàn)
- python3編寫(xiě)C/S網(wǎng)絡(luò)程序?qū)嵗坛?/a>
相關(guān)文章
django+echart數(shù)據(jù)動(dòng)態(tài)顯示的例子
今天小編就為大家分享一篇django+echart數(shù)據(jù)動(dòng)態(tài)顯示的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08
Python檢測(cè)生僻字的實(shí)現(xiàn)方法
最近在工作中碰到一個(gè)需求,要求檢測(cè)字段是否包含生僻字以及一些非法字符如 ~!@#$%^&*。通過(guò)網(wǎng)上的查找資料解決了,現(xiàn)在將解決的過(guò)程和示例代碼分享給大家,有需要的可以參考借鑒。下面來(lái)一起看看吧。2016-10-10
Python實(shí)現(xiàn)動(dòng)態(tài)給類和對(duì)象添加屬性和方法操作示例
這篇文章主要介紹了Python實(shí)現(xiàn)動(dòng)態(tài)給類和對(duì)象添加屬性和方法操作,涉及Python面向?qū)ο蟪绦蛟O(shè)計(jì)中類與對(duì)象屬性、方法的動(dòng)態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2020-02-02
pandas DataFrame運(yùn)算的實(shí)現(xiàn)
這篇文章主要介紹了pandas DataFrame運(yùn)算的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
使用Python requests庫(kù)發(fā)送JSON數(shù)據(jù)的POST請(qǐng)求步驟
在Python這個(gè)強(qiáng)大的編程語(yǔ)言中,requests庫(kù)是一個(gè)廣泛使用且功能強(qiáng)大的HTTP請(qǐng)求庫(kù),發(fā)送POST請(qǐng)求并附帶JSON數(shù)據(jù)是一個(gè)非常常見(jiàn)的需求,本文給大家介紹了如何用Python的requests庫(kù)發(fā)送JSON數(shù)據(jù)的POST請(qǐng)求,需要的朋友可以參考下2024-06-06
Python 讀取 YUV(NV12) 視頻文件實(shí)例
今天小編就為大家分享一篇Python 讀取 YUV(NV12) 視頻文件實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12
利用python讀取YUV文件 轉(zhuǎn)RGB 8bit/10bit通用
今天小編就為大家分享一篇利用python讀取YUV文件 轉(zhuǎn)RGB 8bit/10bit通用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12

