server併發,socketserver模組
一、server併發
(1)server併發服務端
#author: wylkjj
#date:2019/4/20
#server併發服務端
import socketserver
class myserve(socketserver.baserequesthandler):#$ 必須繼承baserequesthandler
def handle(self):#handel是父類的方法 #$ 必須有handle方法
print('服務端啟動...')
while true:
conn = self.request #通過self呼叫conn
print(self.client_address)
while true:
client_data=conn.recv(1024)
print(str(client_data,'utf8'))
print("wating...")
inp=input('>>>')
conn.sendall(bytes(inp,'utf8'))
conn.close()
if __name__=='__main__': #判斷主函式在**
server = socketserver.threadingtcpserver(('127.0.0.1',8000),myserve) #$ 實現多執行緒的socket
server.serve_forever() #$ 當前連線斷開不會出現關閉或報錯,可以與其他客戶端繼續連線
(2)使用者客戶端(併發多端之一)
#author: wylkjj
#date:2019/4/20
#使用者客戶端(併發多端之一)
import socket
sk=socket.socket()
ip_port=('127.0.0.1',8000)
sk.connect(ip_port)
print('客戶端啟動:')
while true:
inp = input('>>>')
sk.sendall(bytes(inp,'utf8'))
if inp == 'exit':
break
server_response=sk.recv(1024)
print(str(server_response,'utf8'))
sk.close()
(3)使用者客戶端(併發多端之二)
#author: wylkjj
#date:2019/4/21
#使用者客戶端(併發多端之二)
import socket
sk=socket.socket()
ip_port=('127.0.0.1',8000)
sk.connect(ip_port)
print('客戶端啟動:')
while true:
inp = input('>>>')
sk.sendall(bytes(inp,'utf8'))
if inp == 'exit':
break
server_response=sk.recv(1024)
print(str(server_response,'utf8'))
sk.close()
二、socketsever模組
ctrl+滑鼠左鍵 檢視原始碼
Sockets 簡要介紹
從這裡開始介紹 socket api,我們由socket 位址開始介紹,基本上後續的所有例子,都要涉及到這個結構體,這個結構體可以有兩個傳輸方向,從使用者程序到核心,或者從核心到使用者程序socket address structures 絕大多數socket 函式都須要傳遞乙個指向socket的指...
基於TCP的Sockets程式設計
win32 下使用socket api函式進行網路開發的基本流程與方法 1 初始化和釋放套接字型檔 2 建立套接字控制代碼 3 繫結位址資訊 4 連線 5 資料收發 6 關閉套接字 下面介紹基於tcp的sockets程式設計 tcp伺服器 include include include pragma...
woo語言使用sockets模擬http請求
print sockets模擬http請求測試 正常情況下,請勿這樣使用,請使用正規的http模組,這裡僅僅探索sockets使用方法 在這個函式內,sockets有效,函式結束後,sockets自動關閉 out 撥通遠端ip ok 傳送http頭部資訊位元組長度 r,n r sock write ...