基于python實(shí)現(xià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ī)豐富,但將多臺PC機(jī)聯(lián)成網(wǎng),必然會增加資源含量,各個(gè)用戶都在網(wǎng)絡(luò)上來共享所有資源。根據(jù)客戶/服務(wù)器(Client/Server簡記為C/S)體系結(jié)構(gòu)的概念,至少用兩臺計(jì)算機(jī)來分別充當(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)聽固定端口,等待連接,客戶端來連接,然后互相發(fā)送消息
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
django+echart數(shù)據(jù)動(dòng)態(tài)顯示的例子
今天小編就為大家分享一篇django+echart數(shù)據(jù)動(dòng)態(tài)顯示的例子,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
Python實(shí)現(xiàn)動(dòng)態(tài)給類和對象添加屬性和方法操作示例
這篇文章主要介紹了Python實(shí)現(xiàn)動(dòng)態(tài)給類和對象添加屬性和方法操作,涉及Python面向?qū)ο蟪绦蛟O(shè)計(jì)中類與對象屬性、方法的動(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),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
使用Python requests庫發(fā)送JSON數(shù)據(jù)的POST請求步驟
在Python這個(gè)強(qiáng)大的編程語言中,requests庫是一個(gè)廣泛使用且功能強(qiáng)大的HTTP請求庫,發(fā)送POST請求并附帶JSON數(shù)據(jù)是一個(gè)非常常見的需求,本文給大家介紹了如何用Python的requests庫發(fā)送JSON數(shù)據(jù)的POST請求,需要的朋友可以參考下2024-06-06
Python 讀取 YUV(NV12) 視頻文件實(shí)例
今天小編就為大家分享一篇Python 讀取 YUV(NV12) 視頻文件實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
利用python讀取YUV文件 轉(zhuǎn)RGB 8bit/10bit通用
今天小編就為大家分享一篇利用python讀取YUV文件 轉(zhuǎn)RGB 8bit/10bit通用,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12

