基于python實現(xiàn)簡單C/S模式代碼實例
C/S模式就是指客bai戶端/服務(wù)器模式,du是計算機(jī)軟件協(xié)同工作的一種模式。zhi
由于Web瀏覽器的興起,B/S模式逐步取代了daoC/S模式,被更廣泛地應(yīng)用。隨著計算機(jī)網(wǎng)絡(luò)技術(shù)的成熟和應(yīng)用普及,特別是局域網(wǎng)的發(fā)展、PC機(jī)的出現(xiàn),越來越多的用戶和企業(yè)開始使用計算機(jī)管理一些事務(wù)。
PC機(jī)的資源沒有大型、中型甚至小型主機(jī)豐富,但將多臺PC機(jī)聯(lián)成網(wǎng),必然會增加資源含量,各個用戶都在網(wǎng)絡(luò)上來共享所有資源。根據(jù)客戶/服務(wù)器(Client/Server簡記為C/S)體系結(jié)構(gòu)的概念,至少用兩臺計算機(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è)計思路還是那樣的,服務(wù)器端監(jiān)聽固定端口,等待連接,客戶端來連接,然后互相發(fā)送消息
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
opencv3/C++實現(xiàn)視頻背景去除建模(BSM)
今天小編就為大家分享一篇opencv3/C++實現(xiàn)視頻背景去除建模(BSM),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
python 內(nèi)置庫wsgiref的使用(WSGI基礎(chǔ)入門)
WSGI(web服務(wù)器網(wǎng)關(guān)接口)主要規(guī)定了服務(wù)器端和應(yīng)用程序之間的接口,即規(guī)定了請求的URL到后臺處理函數(shù)之間的映射該如何實現(xiàn)。wsgiref是一個幫助開發(fā)者開發(fā)測試的Python內(nèi)置庫,程序員可以通過這個庫了解WSGI的基本運(yùn)行原理,但是不能把它用在生產(chǎn)環(huán)境上。2021-06-06
pytorch 搭建神經(jīng)網(wǎng)路的實現(xiàn)
這篇文章主要介紹了pytorch 搭建神經(jīng)網(wǎng)路,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08
Python Paramiko模塊中exec_command()和invoke_shell()兩種操作區(qū)別
invoke_shell 使用 SSH shell channel,而 exec_command 使用 SSH exec channel,本文主要介紹了Python Paramiko模塊中exec_command()和invoke_shell()兩種操作區(qū)別,具有一定的參考價值,感興趣的可以了解一下2024-02-02
python下os模塊強(qiáng)大的重命名方法renames詳解
這篇文章主要介紹了python下os模塊強(qiáng)大的重命名方法renames詳解的相關(guān)資料,需要的朋友可以參考下2017-03-03

