Python套接字连接失败

时间:2013-12-29 21:01:21

标签: python sockets

我正在尝试在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

i 只是服务器收到的字符数的计数器。

我的客户端脚本:

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次迭代之后连接失败。

非常感谢任何帮助......

谢谢!

1 个答案:

答案 0 :(得分:-1)

问题出现是因为i的值变为无穷大。您可以通过在while循环中添加几行来避免这种情况:

if i==100:
     i = 0