首先建立兩份**,乙份執行於伺服器,乙份執行於裝置端
**參考:
裝置端
from socket import *
host = '149.28.159.155' # 指定客戶端訪問host
port = 21567
bufsiz = 1024
addr = (host, port)
tcpclisock = socket(af_inet, sock_stream)
tcpclisock.connect(addr) # 連線位址
while true:
# 使用者輸入資料(str型別)
data = input('> ')
if not data:
break
# 將資料進行編碼,再通過send()方法傳送給之前繫結的位址伺服器
tcpclisock.send(data.encode('utf8'))
# 接收伺服器返回的資料(bytes型別),解碼為字串型別
data = tcpclisock.recv(bufsiz).decode('utf8')
if not data:
break
# 列印字串
print(data)
# 關閉客戶端,斷開連線
tcpclisock.close()
伺服器端:
from socket import *
from time import ctime
host = '' # 允許任意host接入
port = 21567
bufsiz = 1024
addr = (host, port)
tcpsersock = socket(af_inet, sock_stream)
tcpsersock.bind(addr) # 繫結位址
tcpsersock.listen(5) # 最多同時監聽數量上限為5
while true:
print('waiting for connection...')
# 接受客戶端請求之前保持阻塞,連線後獲取客戶端socket及其位址
tcpclisock, addr = tcpsersock.accept()
# 列印請求此次服務的客戶端的位址
print('...connection from: {}'.format(addr))
while true:
# 通過客戶socket獲取客戶端資訊(bytes型別),並解碼為字串型別
data = tcpclisock.recv(bufsiz).decode('utf8')
if not data:
break
print(data)
# 處理字串並重新編碼為bytes型別,呼叫send()方法傳送回客戶端
tcpclisock.send('[{}] {}'.format(ctime(), data).encode('utf8'))
send = 'jun test'
tcpclisock.send(send.encode('utf8'))
# 關閉客戶端
tcpclisock.close()
# 關閉伺服器
tcpclisock.close()
執行,有先後順序,先執行伺服器,再執行裝置端
裝置已連線
裝置發資料給伺服器,伺服器再返回給裝置
python socket 實現伺服器 客戶端通訊
伺服器 usr env bin python coding utf 8 import socket server def server sock socket.socket socket.af inet,socket.sock stream sock.bind localhost 8000 sock...
Python socket實現伺服器端與客戶端連線
伺服器端與客戶端每個5秒鐘通訊一次,具體實現如下 伺服器端 usr bin python coding utf 8 檔名 server.py import socket 匯入 socket 模組 import time s socket.socket 建立 socket 物件 host socket...
python socket伺服器端一直接收空字串
我最開始是這樣構想的,如果客戶端傳送88的訊息,那麼直接關閉伺服器端的訊息,但是陰差陽錯,c 客戶端的 寫錯了,就看到了這個現象,那就是如果客戶端socket 關閉的話,伺服器端會一直接收到空訊息 最初的 是這樣的 python服務端 coding utf 8 使用utf 8編碼 coding ut...