是的,我確實已經試着找到這方面的信息。插座類型之間的區別
Python的插座文檔有什麼,我相信是這樣的協議列表:
SO_*
socket.SOMAXCONN
MSG_*
SOL_*
IPPROTO_*
IPPORT_*
INADDR_*
IP_*
IPV6_*
EAI_*
AI_*
NI_*
TCP_*
正是他們做什麼呢?比方說我用過
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP)
這是幹什麼用的?我知道這是一個原始套接字,但是IPPROTO_IP是否意味着我必須構建一切? (即IP頭向下到TCP數據?)
Python文檔說我可以在套接字的Unix文檔中找到上述信息,但找不到文檔。任何人都知道它在哪裏?
是的,IPPROTO_IP的意思是原始IP,你可能不需要它。 (雖然你不需要構造IP頭,但只需要TCP頭。)至於文檔,請嘗試http://linux.die.net/man/7/socket。 – Sneftel
非常感謝,非常感謝。那麼爲了確保,如果我使用了(IPPROTO_IP),這意味着任何IP協議必須由我構建?所以如果我使用TCP,我會構建TCP頭,UDP等...? – user3842825
沒錯。另外,對於TCP,您必須實現自己的握手,確認,重傳等。 – Sneftel