Python HTTP多程序伺服器

2021-09-07 19:24:31 字數 1937 閱讀 8764

import socket

import multiprocessing

import re

class server(object):

def __init__(self, port):

""" 在初始化中做好tcp連線的準備工作 """

# 1建立乙個tcp套接字

self.tcp_socket = socket.socket(socket.af_inet, socket.sock_stream)

# 埠重複使用

self.tcp_socket.setsockopt(socket.sol_socket, socket.so_reuseaddr, 1)

# 2.繫結本地埠

self.tcp_socket.bind(("", port))

# 3.設定監聽

self.tcp_socket.listen(128)

def run_server(self):

""" 迴圈執行伺服器 """

while true:

# 1.等待使用者接入

new_socket, addr = self.tcp_socket.accept()

# 2.為使用者提供服務,建立多執行緒

p = multiprocessing.process(target=self.content, args=(new_socket,))

p.start()

# 因為程序會複製乙份再去執行,所以在這裡要關掉主程序的客戶鏈結

new_socket.close()

# 3.關閉套接字

self.tcp_socket.close()

def content(self, new_socket):

# 1.接受訊息

client_message = new_socket.recv(1024).decode("utf-8")

# 對接收的的請求資訊進行分析篩選

request_message = client_message.splitlines()

print(request_message[0])

if request_message:

hanld_result = re.match(r"[^/]+(/[^ ]*)", request_message[0])

print(hanld_result.group(1))

# 2.返回訊息給使用者

# 3.關閉new_socket客戶連線

new_socket.close()

def main():

server1 = server(7758)

server1.run_server()

if __name__ == '__main__':

main()

多程序伺服器

基於tcp實現多程序伺服器 伺服器端 1 建立套接字 include include int socket int domain,int type,int protocol domain 乙個位址描述。目前僅支援af inet格式,也就是說arpa internet位址格式。type 指定socke...

多程序伺服器

注意 包含了 wrap.c 和 wrap.h 檔案在上篇部落格中 server.c include include include in.h include include include include include include wrap.h define maxline 8192 defi...

多程序 多程序queue

多程序 import multiprocessing import threading import time defthread run print threading.get ident defrun name time.sleep 2 print hello name t threading....