我正在制作一个python服务器以保持连接3个客户端。我已完成所有操作,现在,当我正在为服务器执行stdin命令时(如退出,请参阅(客户端)等),我意识到我对我有一个明显的问题:
这是结构:
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 recived并保持客户端连接到服务器。
这是我的问题:
数据:错误,出乎意料的异常 关闭文件的I / O操作 回溯(最近一次调用最后一次):
文件“srv.py”,第588行,in 启动()
文件“srv.py”,第136行,开头 main()的
文件“srv.py”,第481行,在main中 设置()
文件“srv.py”,第164行,在设置中 dad_wait(srv.UDP,number_sons)
文件“srv.py”,第172行,在dad_wait中 print“Data:”,sys.stdin.readline()
ValueError:关闭文件的I / O操作
第172行是我第一次从stdin()读取,但程序允许我这样做,所以我认为它在第二轮失败的时候
我需要说当调用MAIN_son线程时会开始打印来自客户端pakages的所有pkg信息。我不知道这些印刷品是不是原因。
如果有人需要有关代码的更多信息,我会刷新问题,谢谢