#socekt是應用層與tcp/ip協議族通訊的中間軟體抽象層,它是一組介面。在設計模式中,socket其實就是乙個門面模式,它
#把複雜的tcp/ip協議族隱藏在socket介面後面,對使用者來說,一組簡單的介面就是全部,讓socket去組織資料,以符合指定的協議
#socket
#基於檔案型別的套接字家族(一般不用)
#套接字家族的名字:af_unix
#unix一切皆檔案、基於檔案的套接字呼叫的就是底層的檔案系統來取資料,兩個套接字程序執行在同乙個機器上,可以通過訪問同乙個檔案系統間接完成通訊
#基於網路型別的套接字家族
#套接字家族的名字:af_inet(代表ipv4),常用
#還有af_inet6被用於ipv6
server.py
importclient.pysocket
sk = socket.socket() #
建立乙個socket
#sk.setsockopt(socket.sol_socket, socket.so_reuseport, 1) # 避免服務重啟的時候報address already in use。加上這個解決
sk.bind(('
127.0.0.1
', 8080)) #
繫結,接收的引數是乙個元組
sk.listen() #
監聽conn, addr = sk.accept() #
#print(conn, addr)
ret = conn.recv(1024) #
接收客戶端資料
print(ret.decode('
utf-8
')) #
解碼顯示
str = '你好'
#conn.send(str.encode('utf-8')) # 給客戶端傳送資料,在網路上只能傳輸bytes型別,也就是二進位制
#conn.send(b'hello client')
conn.send(bytes('
你好', encoding='
utf-8'))
conn.close()
#關閉與客戶端的鏈結
sk.close() #
關閉socekt
importsocket
sk = socket.socket() #
建立socket
sk.connect((
'127.0.0.1
', 8080)) #
客戶端發起鏈結
str = '
你好服務端'#
sk.send(str.encode('utf-8')) # 編碼傳送
#sk.send(bytes('你好服務端', encoding='utf-8'))
sk.send(bytes('
你好服務端
'.encode('
utf-8
')))
ret = sk.recv(1024)
print(ret.decode('
utf-8
')) #
解碼sk.close()
基於TCP的Socket通訊
在win32平台上的winsock程式設計都要經過下列步驟 定義變數 獲得windock版本 載入winsock庫 初始化 建立套接字 設定套接字選項 關閉套接字 解除安裝winsock庫 釋放資源 1 建立乙個socket,用函式socket int socket int domain,int t...
基於TCP協議的socket通訊
一 伺服器端 1 建立serversocket,即伺服器端的socket,繫結指定的埠,並偵聽此埠 serversocket server new serversocket 8888 2 呼叫accept 方法,開始偵聽,等待客戶端的連線,在未連線成功之前,處於阻塞狀態,返回的socket,用於與客...
基於tcp和udp的socket通訊
做個小遊戲的project用到了socket程式設計,於是,就在網上查閱了一下資料,下面簡單總結一下。1.什麼是socket socket是在應用層與傳輸層之間的乙個抽象層,它把tcp ip層複雜的操作抽象為幾個介面 用層的程序實現網路通訊,使得不同主機的相關程序之間交換資料。2.什麼是tcp和ud...