python之利用epoll實現http伺服器

2021-08-21 04:20:49 字數 2304 閱讀 1871

#!/usr/bin/python3.5

# -*- coding: utf-8 -*-

# @time : 18-7-2 下午7:39

# @author : "fengwr"

# @email : [email protected]

# @file : epoll實現http.py

# 建立epoll物件

epl = select.epoll()

# 將tcp_sever_socket註冊到epoll中

epl.register(tcp_sever_socket.fileno(), select.epollin)

fd_even_dict = dict()

while true:

fd_even_list = epl.poll() # 缺省會堵塞,直到套接字進來

# 套接字進來,遍歷列表獲得fd和even.

for fd, even in fd_even_list:

# 如果fd和tcp_sever_socket的fd一樣,就accept()

if fd == tcp_sever_socket.fileno():

new_socket, new_add = tcp_sever_socket.accept()

# 將新的套接字註冊到epl中

epl.register(new_socket.fileno(), select.epollin)

# 將這個鍵值對新增到字典中

fd_even_dict[new_socket.fileno()] = new_socket

elif even == select.epollin:

# 判斷是否傳送了資料過來

# 從epl中刪除

epl.unregister(fd)

# 從字典中刪除鍵值對

del fd_even_dict[fd]

tcp_sever_socket.close()

if __name__ == '__main__':

main()

感覺沒什麼用,以後總不會自己寫乙個伺服器。。。。

python爬蟲之利用requests爬取墨跡天氣

import requests from lxml.html import etree import json import time 匯入模組 class mojiweather def city name self 定義乙個輸入城市名稱的函式 cityname str input 輸入城市名稱 ...

Python資料分析之利用pandas查詢資料

這裡的查詢資料相當於r語言裡的subset功能,可以通過布林索引有針對的選取原資料的子集 指定行 指定列等。我們先導入乙個student資料集 student pd.io.parsers.read csv c users admin desktop student.csv 查詢資料的前5行或末尾5行...

python學習筆記之利用jieba庫進行詞頻分析

jieba github倉庫位址 詞頻統計 import jieba 沒有安裝jieba庫可以在 使用命令列 pip install jieba 進行自動安裝 deffrequency 讀取檔案 txt open 檔案所在目錄.txt r encoding utf 8 read 這裡檔案路徑位置填寫...