[英]Python socket connection fails
我正在嘗試在python中實現簡單的套接字連接。 為了對其進行檢查,客戶端發送了一個“ o”和“ x”序列。
我的服務器腳本如下:
import socket
import time
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Create a socket
host = socket.gethostname() # Get local machine name
port = 12345 # Reserve a port for your service.
s.bind(('', port)) # Bind to the port
s.listen(5)
c, addr = s.accept() # Establish connection with client.
print 'Got connection from', addr
i=0
while True:
str=c.recv(1)
print str[0]
print 'Got ',i
time.sleep(0.1)
i+=1
我只是服務器已收到多少個字符的計數器。
我的客戶腳本:
import socket
import time
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = "192.168.10.2" # Get local machine name
port = 12345
s.connect((host, port))
switch=0
while True:
if switch:
s.send('o')
switch=0
else:
s.send('x')
switch=1
time.sleep(0.1)
我的問題是,盡管開始時連接絕對正確(服務器按預期方式接收並打印字符),但一段時間后服務器停止從客戶端接收數據,我無法弄清原因。 服務器的while循環大約650-750次迭代后,連接失敗。
任何幫助將不勝感激...
謝謝 !
出現問題是因為i
的值變為無窮大。 您可以通過在while循環中添加幾行來避免這種情況:
if i==100:
i = 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.