#编写一个有2个线程的程序
#线程1用来接收数据然后显示
#线程2用来检测键盘数据然后通过udp发送数据
import socket
import threading
#发送信息
def sendmsg(udp_socket,ip,post):
while True:
msg = input("\n请输入:")
udp_socket.sendto(msg.encode(),(ip,post))
#接收信息
def recvmsg(udp_socket):
while True:
recvmsg,recvip = udp_socket.recvfrom(1024)
print(">>>%s:%s"%(str(recvip),recvmsg.decode()))
def main():
#创建套接字
udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
#绑定本地ip和端口
udp_socket.bind(("",7890))
#子线程接收信息,传入套接字
t = threading.Thread(target=recvmsg,args=(udp_socket,))
t.start()
# 输入对方ip
ip = input("\n输入对方ip:")
# 输入对方端口
post = int(input("\n输入对方端口:"))
#主线程发送信息,传入套接字
sendmsg(udp_socket,ip,post)
if __name__ == '__main__':
main()
网友评论