1、service
address = ('localhost
', 9102)
#af_inet = ipv4; sock_stream:tcp
s =socket.socket(socket.af_inet, socket.sock_stream)
#監聽 ip:port
s.bind(address)
#最大允許連線數量
s.listen(5)
while
true:
print('
----server wait')
#阻塞 每當有客戶端的請求過來開始執行
#連線處理 (已完成三次握手)並獲取資源物件 |
conn, addr =s.accept()
#請求處理 | 讀取客戶端傳送過來的資料 |
recv_data = conn.recv(1024)
(recv_data)
#響應處理 | 把客服端傳送過來的資料又**回去
conn.sendall(data.encode('
utf-8
'))
2、client
importsocket
s =socket.socket(socket.af_inet, socket.sock_stream)
#連線服務端
s.connect(('
127.0.0.1
', 9102))
#請求 | 傳送資料到服務端
s.sendall(b'
hello')
#響應 | 接受服務端返回到資料
data = s.recv(1024)
print(data) #
hello
#關閉 socket
s.close()
在實際使用tcp通訊的時候,由於tcp的機制,存在粘包情況,針對這一問題的處理見
socket(tcp-粘包)通訊之python實現
非同步socket TCP 通訊
使用 wsaasyncselect 可實現非同步 socket 通訊,原型 wsaasyncselect socket s,套接字 hwnd hwnd,接收網路事件的視窗控制代碼 unsigned int wmsg,網路事件通知訊息 long lwvent 套接字需要的通知碼 long lwvent...
Luat實現socket tcp通訊
以下 需要在luat通訊模組中使用 建立連線後無法主動關閉,只能靠斷網關閉或者伺服器端關閉 模組功能 tcp連線,報文收發 需要使用合宙官方lib 作者 wangjiaw 983893384 qq.com 版本 20210309 修改記錄1 20210309 require socket modul...
使用socket tcp實現通訊
一 伺服器端 include include 需要引入ws2 32.lib動態鏈結庫 void main if lobyte wsadata.wversion 1 hibyte wsadata.wversion 1 socket socksrv socket af inet,sock stream,...