0
我在寫一個TCP python腳本,它將充當服務器並從機器(客戶端)獲取溫度讀數。我需要從服務器向客戶端傳遞命令,並偵聽響應的輸出。我成功地到達了cmd定義行,但是當s.accept()被調用時,我留下了沒有來自客戶端的響應。TCP Python套接字服務器響應
Server.py
import socket
port = 7777
ip = raw_input('192.168.62.233')
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((ip, port))
s.listen(1)
print "waiting on port: ", port
while True:
cmd = raw_input('KRDG? A[term]')#command send to client
conn, addr = s.accept()
s.send(cmd)
print "It sent"
data = conn.recv(4096)
print "Received:", data, " from address ", addr
編輯:
我相信你是正確的,我應該考慮我的代碼在服務器,客戶端和溫度讀數。當我進入s.recv()時,現在我在「這裏2」之後掛了。
Client.py
import socket
ip = '192.168.62.233'
port = 7777 # The same port as used by the server
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((ip, port))
print 'here'
s.send('KRDG? A[term]')
print 'here 2'
data = s.recv(4096)
print 'here 3'
s.close()
print 'Received', repr(data)
通常情況相反:客戶端通過命令詢問服務器。客戶代碼在哪裏? – Daniel
我相信你是正確的,我應該考慮我的代碼客戶端和溫度讀取在服務器上。當我到達s.recv()時,我現在會在「this 2」之後掛起,如編輯 –
@ScottMacdonald所示。所以你可以在ip:port上成功地連接到你的服務器,並向它發送數據,但是你不會不會收到任何回報。你有服務器代碼嗎?你可以檢查服務器是否收到客戶端數據,以及服務器用它做什麼? – margold