使用tkinter
,当我尝试打开客户端时出现错误:
NameError:未定义全局名称“client”
Traceback(most recent call lost):
File "C:\Users\Gerardi\Desktop\graf2.py", line 21, in <module>
cliente2 = conectar()
File "C:\Users\Gerardi\Desktop\graf2.py", line 18, in conectar
cliente.connect(address)
File "C:\Python27\lib\socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
ocket.error: [Errno 10049] La direcci¾n solicitada no es vßlida en este context
def conectar():
cliente = socket.socket(2,1)
ip = cuadro_texto3.get("1.0", "1.end")
address = (ip, 5001)
cliente.connect(address)
return cliente
cliente2 = conectar()
def check_message(cliente):
while True:
try:
datos = cliente.recv(1000)
cuadro_texto2.insert("1.0", datos)
except socket.error:
break
if datos == "quit":
cliente.close()
server.close()
cliente.close()
答案 0 :(得分:1)
无论如何,你不应该使用全球。使用返回值和参数。
def conectar():
[... your code ...]
return cliente
def check_message(cliente):
[... your code ...]
client = conectar()
check_message(client)
此外,在名为* check_message *的函数中关闭连接可能不是一个好主意。你应该有一个自己的功能。
从长远来看,重构整个代码可能是一个好主意。