基于python實現(xiàn)簡單C/S模式代碼實例
C/S模式就是指客bai戶端/服務(wù)器模式,du是計算機軟件協(xié)同工作的一種模式。zhi
由于Web瀏覽器的興起,B/S模式逐步取代了daoC/S模式,被更廣泛地應(yīng)用。隨著計算機網(wǎng)絡(luò)技術(shù)的成熟和應(yīng)用普及,特別是局域網(wǎng)的發(fā)展、PC機的出現(xiàn),越來越多的用戶和企業(yè)開始使用計算機管理一些事務(wù)。
PC機的資源沒有大型、中型甚至小型主機豐富,但將多臺PC機聯(lián)成網(wǎng),必然會增加資源含量,各個用戶都在網(wǎng)絡(luò)上來共享所有資源。根據(jù)客戶/服務(wù)器(Client/Server簡記為C/S)體系結(jié)構(gòu)的概念,至少用兩臺計算機來分別充當(dāng)客戶機和服務(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-12python 內(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的基本運行原理,但是不能把它用在生產(chǎn)環(huán)境上。2021-06-06pytorch 搭建神經(jīng)網(wǎng)路的實現(xiàn)
這篇文章主要介紹了pytorch 搭建神經(jīng)網(wǎng)路,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08Python 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