对于我的simple socket server,我需要一个名为serverloop
的函数(我正在努力提高我的函数技能。)在这个函数中,循环不断尝试与潜在客户连接:
def serverloop(s):
while True:
conn, addr = s.accept()
print "Connected with", addr
但是,运行其他功能需要conn
:
def send_msg(conn):
#Send some data to the remote server
my_message = raw_input(">>>")
#set the whole string
conn.sendall(my_message)
我尝试使用行global conn
强制conn为全局,但我仍然收到错误:
NameError: global name 'conn' is not defined
注意:我必须使用线程。
如果在函数中定义conn变量,我如何调用conn变量?
答案 0 :(得分:1)
您正在使用线程,并且在您致电conn
时RECEIVE
尚未设置。
修复将是不使用线程,或者至少将conn
设置为None
,然后轮询它是否设置为{{1}中的不同内容在尝试将值传递给main
之前。