簡體   English   中英

Python套接字連接失敗

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM