server併發,socketserver模組

2021-09-19 10:04:36 字數 1762 閱讀 1728

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 ...