我正在制作一个python服务器来连接3个客户端。我已经完成了所有的工作,现在,当我为服务器执行stdin命令(如quit、see(client)等)时,我意识到我有一个明显的大问题:
结构如下:
import sys, os, traceback, optparse
import time, datetime
import random
import socket
import thread
import select
while True:
data,addr = dad_sock.recvfrom(UDP)
if(data != ""):
print "First_Data:",sys.stdin.readline()
thread.start_new_thread(MAIN_son,(UDP,data,addr,number_sons))
number_threads += 1
print "Second_Data:",sys.stdin.readline()
MAIN琰son所做的是创建一个新线程来查找接收到的pkg并保持客户端与服务器的连接。你知道吗
我的问题是:
Data: ERROR, UNEXPECTED EXCEPTION I/O operation on closed file Traceback (most recent call last):
File "srv.py", line 588, in start()
File "srv.py", line 136, in start main()
File "srv.py", line 481, in main setup()
File "srv.py", line 164, in setup dad_wait(srv.UDP,number_sons)
File "srv.py", line 172, in dad_wait print "Data:",sys.stdin.readline()
ValueError: I/O operation on closed file
第172行是我对stdin()的第一次读取,但程序允许我这样做,所以我认为它在第二轮时失败了
我需要说的是,当主线程被调用时,开始打印所有来自客户端包的pkg信息。我不知道这些指纹是否是原因。你知道吗
如果有人需要关于代码的更多信息,我将刷新问题,谢谢
目前没有回答
相关问题 更多 >
编程相关推荐