套接字通訊底層原理由應用程式記憶體拷貝到作業系統,作業系統遵循tcp協議向對方去發,對方接收到並傳送訊號
from socket import *client =socket(af_inet, sock_stream)客戶端client.connect((
'127.0.0.1
', 8081))
#通訊迴圈
while
true:
msg=input('
>>:
').strip() #
msg=''
if len(msg) == 0:continue
client.send(msg.encode(
'utf-8
')) #
client.send(b'')
print('
has send')
data=client.recv(1024)
print('
has recv')
(data)
client.close()
#服務端服務端必須滿足至少三點:
#1. 繫結乙個固定的ip和port
#2. 一直對外提供服務,穩定執行
#3. 能夠支援併發
from socket import *server =socket(af_inet, sock_stream)
server.bind((
'127.0.0.1
', 8081))
server.listen(5)
#鏈結迴圈
while
true:
conn, client_addr =server.accept()
(client_addr)
#通訊迴圈
while
true:
try:
data = conn.recv(1024)
if len(data) == 0: break
#針對linux系統
print('
-->收到客戶端的訊息:
', data)
conn.send(data.upper())
except
connectionreseterror:
break
conn.close()
server.close()
套接字通訊
利用三元組 ip位址,協議,埠 就可以標識網路的程序 socket即是一種特殊的檔案,一些socket函式就是對其進行的操作 讀 寫io 開啟 關閉 socket是 open write read close 模式的一種實現,那麼socket就提供了這些操作對應的函式介面 tcp通訊中的socket...
套接字通訊
套接字家族的名字 af unix unix一切皆檔案,基於檔案的套接字呼叫的就是底層的檔案系統來取資料,兩個套接字程序執行在同一機器,可以通過訪問同乙個檔案系統間接完成通訊 套接字家族的名字 af inet 還有af inet6被用於ipv6,還有一些其他的位址家族,不過,他們要麼是只用於某個平台,...
socket 套接字通訊
要通過internet進行通訊,至少需要一對套接字,其中乙個執行在客戶端,稱之為clientsocket,另乙個執行於伺服器端面,稱為serversocket。根據連線啟動的方式以及本地要連線的目標,套接字之間的連線過程可以分為三個步驟 伺服器監聽 客戶端請求 連線確認。伺服器監聽是指服務端套接字並...