|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 编程追风梦 于 2023-7-7 16:37 编辑
报错信息:
- Traceback (most recent call last):
- File "D:/卢天恩文件夹/31.高级编程工程/多线程图形化聊天软件/客户端/客户端.py", line 78, in <module>
- s.connect(server)#建立连接
- TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
复制代码
客户端源代码
- #客户端
- import tkinter
- from tkinter import font
- import tkinter.messagebox
- import socket
- import threading
- import time
- string=''
- def my_string(s_input):
- string = s_input.get()
- def Send(sock):
- '''
- 发送数据的方法
- 参数:
- sock:定义一个实例化socket对象
- server:传递的服务器IP和端口
- '''
- if string!='':
- message = name + ' : ' + string
- data = message.encode('utf-8')
- sock.send(data)
- if string.lower() == 'EXIT'.lower():
- exit()
- def recv(sock):
- sock.send(name.encode('utf-8'))
- while True:
- data = sock.recv(1024)
- #加一个时间戳
- time_tuple = time.localtime(time.time())
- str = ("{}点{}分".format(time_tuple[3],time_tuple[4]))
- rrecv = tkinter.Label(t,text=data.decode('utf-8'),width=40,anchor='w',bg='pink')#接收的消息靠左边
- rrecv.pack()
- def left():
- global string
- string = rv1.get()
- Send(s)
- if string!='':
- rleft = tkinter.Label(t,text=string,width=40,anchor='e')#发送的消息靠右边
- rleft.pack()
- rv1.set('')
- def Creat():
- global name
- name = n.get()
-
- #接收进程
- tr = threading.Thread(target=recv, args=(s,), daemon=True)
- # daemon=True 表示创建的子线程守护主线程,主线程退出子线程直接销毁
- tr.start()
-
- l.destroy()
- e.destroy()
- b.destroy()
- t.title("聊天室")
- t.geometry("500x600")
- rL0 = tkinter.Label(t,text='%s的聊天室'%name,width=40)
- rL0.pack()
- rL1 = tkinter.Label(t,text='请输入消息:',width=20, height=1)
- rL1.place(x=0,y=450)
- rE1 = tkinter.Entry(t, textvariable = rv1)
- rE1.place(x=200,y=450)
- rB1 = tkinter.Button(t, text="发送",command=left)
- rB1.place(x=380,y=450)
- #发送进程
- def JieShu():
- tkinter.messagebox.showwarning(title='你确定退出吗?', message='刚才你点击了关闭按钮')
- s.send("error1".encode('utf-8'))
- exit(0)
-
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- server = ('10.100.207.40', 9999)
- s.connect(server)#建立连接
- t=tkinter.Tk()
- t.title("多人聊天室")
- t.geometry("300x200+500+200")
- l = tkinter.Label(t,text='多人聊天室欢迎您,请输入你的名称',width=40, height=8)
- l.pack()
- n = tkinter.StringVar()
- e = tkinter.Entry(t, width=15,textvariable = n)
- e.pack()
- rv1 = tkinter.StringVar()
- name = n.get()
- b = tkinter.Button(t, text="登录",width=40, height=10,command=Creat)
- b.pack()
- t.protocol("WM_DELETE_WINDOW", JieShu)
- t.mainloop()
- s.close()
复制代码 不知道哪里出了问题
大佬们帮我看看
刚刚有人说是因为ip不对,要输入我自己的才行,我试了一下,还是不行,客户端的IP可能是随机的,所以我改成了我的上次访问IP
客户端报错
虽然没有显示报错,可以正常运行,但是发现过了一会会提示没有响应报错
于是我尝试改写admin服务端ip,结果直接报错
admin报错
因为我ip是:119.111.249.139:43032
买随机的9999我改成了43032
个人主页
还是显示报错,改回9999也一样报错
你这个是服务器还是啥
我不知道你原来咋写的,反正ip那一栏服务端要写成0.0.0.0
|
|