#客户端
#coding-utf-8
from socket import *
from threading import Thread
def recv_data():
while True:
recv_date = s.recvfrom(1024) # 1024表示本次接收的最大字节数
recv_content = recv_date[0].decode('gbk')
print(f"收到远程信息:{recv_content},from {recv_date[1]}")
if recv_content == "88":
print("聊天结束")
break
def send_data():
addr = ("127.0.0.1", 8989)
while True:
data = input("请输入:")
s.sendto(data.encode("gbk"), addr)
if data == '88':
print('聊天结束!')
break
s.close()
if __name__ =='__main__':
s= socket(AF_INET,SOCK_DGRAM) #创建UDP类型的套接字
s.bind(('127.0.0.1',8080)) #绑定接口,ip可以不写
#创建两个线程
t1=Thread(target=recv_data)
t2=Thread(target=send_data)
t1.start()
t2.start()
t1.join()
t2.join()
#服务端
#coding-utf-8
from socket import *
from threading import Thread
def recv_data():
while True:
recv_date = s.recvfrom(1024) # 1024表示本次接收的最大字节数
recv_content = recv_date[0].decode('gbk')
print(f"收到远程信息:{recv_content},from {recv_date[1]}")
if recv_content == "88":
print("聊天结束")
break
def send_data():
addr = ("127.0.0.1", 8080)
while True:
data = input("请输入:")
s.sendto(data.encode("gbk"), addr)
if data == '88':
print('聊天结束!')
break
s.close()
if __name__ =='__main__':
s= socket(AF_INET,SOCK_DGRAM) #创建UDP类型的套接字
s.bind(('127.0.0.1',8989)) #绑定接口,ip可以不写
#创建两个线程
t1=Thread(target=recv_data)
t2=Thread(target=send_data)
t1.start()
t2.start()
t1.join()
t2.join()
#报错
C:\Users\LS\PycharmProjects\mypro001\venv\Scripts\python.exe C:\Users\LS\PycharmProjects\mypro001\mypro05.py
请输入:1234
请输入:Exception in thread Thread-1 (recv_data):
Traceback (most recent call last):
File "C:\Users\LS\AppData\Local\Programs\Python\Python312\Lib\threading.py", line 1052, in _bootstrap_inner
self.run()
File "C:\Users\LS\AppData\Local\Programs\Python\Python312\Lib\threading.py", line 989, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\LS\PycharmProjects\mypro001\mypro05.py", line 6, in recv_data
recv_date = s.recvfrom(1024) # 1024表示本次接收的最大字节数
^^^^^^^^^^^^^^^^
ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。
Exception in thread Thread-2 (send_data):
Traceback (most recent call last):
File "C:\Users\LS\AppData\Local\Programs\Python\Python312\Lib\threading.py", line 1052, in _bootstrap_inner
self.run()
File "C:\Users\LS\AppData\Local\Programs\Python\Python312\Lib\threading.py", line 989, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\LS\PycharmProjects\mypro001\mypro05.py", line 16, in send_data
data = input("请输入:")
^^^^^^^^^^^^^
File "<frozen codecs>", line 322, in decode
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
Traceback (most recent call last):
File "C:\Users\LS\PycharmProjects\mypro001\mypro05.py", line 32, in <module>
t2.join()
File "C:\Users\LS\AppData\Local\Programs\Python\Python312\Lib\threading.py", line 1126, in join
self._wait_for_tstate_lock()
File "C:\Users\LS\AppData\Local\Programs\Python\Python312\Lib\threading.py", line 1146, in _wait_for_tstate_lock
if lock.acquire(block, timeout):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
KeyboardInterrupt
Process finished with exit code -1073741510 (0xC000013A: interrupted by Ctrl+C)
#提示[WinError 10054] 远程主机强迫关闭了一个现有的连接。