簡體   English   中英

在python中讀取套接字時,os.read和socket.recv之間有什么區別嗎?

[英]When reading a socket in python, is there any difference between os.read and socket.recv?

假設我有一個插座。 這兩行代碼有什么區別?

第1行:

os.read(some_socket.fileno(), 1024)

第2行:

some_socket.recv(1024)

...除了第一個不能在Windows上運行的事實。 換句話說,我可以用第二行代替第一行嗎? 我有一個尚未在Windows上經過真正測試的代碼庫,這引起了麻煩。

第1行使用帶下划線的文件描述符讀取套接字,因此它與平台有關。 使用第2行,因為它是完成同一件事的可移植的多平台方式。

強制性:如果您正在做任何嚴肅的事情,最好避免不得不處理低級套接字。 他們很難正確對待,似乎事情正在奏效,但有很多細節。 這些細節已經在許多網絡框架中得到解決,沒有理由重新發明輪子。 我建議扭曲 ,這是相當不錯的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM