我有这个TCP服务器,我希望能够接收数字(整数),我有一些困难解决一些输出来自程序。它输出它应该的内容,但是它还会输出一些跟踪ValueError。我该如何解决?获取ValueError:无效文字为int()与基数10:''字符串转换期间
Traceback (most recent call last): File "server.py", line 18, in
<module>
data = int(conn.recv(BUFFER_SIZE).strip()); ValueError: invalid literal for int() with base 10: ''
什么IM这里做的是发送整数到服务器:
data = int(conn.recv(BUFFER_SIZE).strip());
foo = data + 1;
if not data: break
print "received data:", data
print "\n foo:", foo
这似乎工作的伟大,但除了两个印记我也得回溯提到: -/
编辑:
感谢kindall指出。由于数据(或recv的)可能是空的,我刚搬来的逻辑,如果测试下,瞧...:d
data = conn.recv(BUFFER_SIZE).strip();
if not data: break
command = int(data);
foo = command + 1;
如果您正在获取回溯,该函数的执行被中断。因此,我怀疑您是在捕获该异常的上下文中运行此代码,但在此之后继续处理数据。 – 2012-08-05 15:09:24
@MartijnPieters - 我认为这更可能是在一个循环中处理一些有效的数据,但然后扼流圈。否则,我们会在代码中看到'try/except'。 – detly 2012-08-05 15:11:34
旁注:你不需要python中的分号。 – 2012-08-05 15:15:33