python套接字聊天服务器
在我从input连接到服务器之后,如何在聊天中更改服务器 我刚刚用一些可以工作的东西更新了代码,尽管它需要更多的工作,有人吗python套接字聊天服务器,python,sockets,Python,Sockets,在我从input连接到服务器之后,如何在聊天中更改服务器 我刚刚用一些可以工作的东西更新了代码,尽管它需要更多的工作,有人吗 def send(event=None): # event is passed by binders. """Handles sending of messages.""" global HOST global PORT global ADDR msg = my
def send(event=None): # event is passed by binders.
"""Handles sending of messages."""
global HOST
global PORT
global ADDR
msg = my_msg.get()
my_msg.set("") # Clears input field.
msg_list1 = msg.split()
try:
if msg_list1 [0] == "/connect":
try:
HOST = msg_list1[1]
PORT = int(msg_list1[2])
ADDR = (HOST,PORT)
client_socket.connect(ADDR)
receive_thread = Thread(target=receive)
receive_thread.start()
except TypeError:
msg_list_tk.insert(tt.END, "Error: please write '/connect ADDR PORT' to connect to server\n")
if msg_list1 [0] == "/connectnew":
HOST = msg_list1[1]
PORT = int(msg_list1[2])
ADDR = (HOST,PORT)
client_socket_2.connect(ADDR)
receive_thread = Thread(target=receive)
receive_thread.start()
except:
msg_list_tk.insert(tt.END, "Error: please write '/connect ADDR PORT' to connect to server\n")
elif msg == "/q":
root.quit()
client_socket.send(b"/q")
elif msg == "/disconnect":
client_socket.close()
else:
client_socket.send(bytes(msg, "utf8"))
except:
msg_list_tk.insert(tt.END, "Wrong input\n")
TCP套接字仅可用于单个TCP连接。如果您想要第二个连接,您需要创建一个新的套接字并调用该套接字上的
connect()
(即,您不能再次调用旧套接字上的connect()
。调用client\u socket时会发生什么情况。使用新地址再次连接(或使用第二个客户端)?您的意思是,在当前程序中的第一个服务器之后,我尝试连接到服务器时会发生什么?注意:我们不了解您连接到的是什么。但是,关闭当前的客户端\u套接字,或者创建一个新的客户端,然后使用不同的服务器地址在其上调用connect()
,这就是“如何更改服务器”的答案。现在,我基本上是连接到我自己的计算机,如果这符合您的兴趣(127.0.0.1 5005),代码中会是什么样子(您的建议)?嗯,您想停止接收线程并完全断开连接,还是只打开多个服务器连接并获取消息?因此它基本上是一个新客户端?@sasasa这是一个新套接字。客户机是您在程序中创建的东西,与套接字无关,所以这是您自己的问题?我可能需要一些帮助:)刚刚更新