18 11 27 長連線 短鏈結

2022-05-20 17:16:40 字數 2825 閱讀 7671

---恢復內容開始---

http  協議有著 1.0  和1.1   在安卓爆發前都是用著 1,0  的協議

長連線  : 直接進行 三次握手 後拿完所有的資源  之後進行 四次揮手        

下面是乙個單執行緒  不堵塞  長連線

import

socket

import

redef

service_client(new_socket, request):

"""為這個客戶端返回資料

"""#

1. 接收瀏覽器傳送過來的請求 ,即http請求

2. 返回http格式的資料,給瀏覽器

"""用來完成整體的控制

"""#

1. 建立套接字

tcp_server_socket =socket.socket(socket.af_inet, socket.sock_stream)

tcp_server_socket.setsockopt(socket.sol_socket, socket.so_reuseaddr, 1)

#2. 繫結

tcp_server_socket.bind(("", 7890))

#3. 變為監聽套接字

tcp_server_socket.listen(128)

tcp_server_socket.setblocking(false)

#將套接字變為非堵塞

client_socket_list =list()

while

true:

#4. 等待新客戶端的鏈結

try:

new_socket, client_addr =tcp_server_socket.accept()

except

exception as ret:

pass

else

: new_socket.setblocking(false)

for client_socket in

client_socket_list:

try:

recv_data = client_socket.recv(1024).decode("

utf-8")

except

exception as ret:

pass

else

:

ifrecv_data:

service_client(client_socket, recv_data)

else

: client_socket.close()

client_socket_list.remove(client_socket)

#關閉監聽套接字

tcp_server_socket.close()

if__name__ == "

__main__":

main()

長連線 短鏈結 長輪詢 短輪詢

原文 那就是一直認為,http連線分為長連線和短連線,而我們現在常用的都是http1.1,因此我們用的都是長連線。這句話其實只對了一半,我們現如今的http協議,大部分都是1.1的,因此我們平時用的基本上都是長連線。但是前半句是不對的,http協議根本沒有長短連線這一說,也正因為誤解了這個,導致對於...

tcp 長連線 短鏈結

1.2.2.tcp短連線 我們模擬一下tcp短連線的情況,client向server發起連線請求,server接到請求,然後雙方建立連線。client向server傳送訊息,server回應client,然後一次讀寫就完成了,這時候雙方任何乙個都可以發起close操作,不過一般都是client先發起...

Http長連線和短鏈結

http屬於應用層協議,所謂http的長連線和短鏈結本質上說的是tcp的長連線和短連線。只有tcp連線才有真正的長連線和短連線這一說法。所謂http 1.1起支援長連線,並不是http 1.1可以建立長連線,而是它支援以請求的方式進行連線的發起,該連線依然時基於tcp的 http 1.0預設使用短連...