# -*- coding: utf-8 -*-
import socket
import threading
def send(udp_socket,dest_ip,dest_port):
# 4.发送数据
while True:
send_data = input("请输入发送数据:")
udp_socket.sendto(send_data.encode("utf-8"),(dest_ip,dest_port))
def recv(udp_socket):
# 5.接收数据
while True:
recv_data = udp_socket.recvfrom(1024)
recv_msg = recv_data[0]
# recv_data是一个元祖
print(recv_data)
# 需要解码
print("对方发送的是:%s" % recv_msg.decode("gbk"))
def main():
# 1.创建套接字
udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
# 2.绑定IP,port
udp_socket.bind(("192.168.43.97",7890))
# 3.输入对方的ip,port
dest_ip = input("请输入IP:")
dest_port = int(input("请输入port:"))
# target 指定将来的线程从哪个 函数名 开始,args指将来线程要传入的数据(参数必须是元祖)
send_socket = threading.Thread(target=send,args=(udp_socket,dest_ip,dest_port,)) # 逗号很关键
recv_socket = threading.Thread(target=recv,args=(udp_socket,))
send_socket.start()
recv_socket.start()
if __name__ == "__main__":
main()
方法二,调用类线程
注意:start只会调用run()这个函数,其他函数 需要在run下方self.login(),self.register()调用