UDP广播
from socket import *
udp_socket = socket(type=SOCK_DGRAM)
udp_socket.bind(('',12345))
这一行代码表示支持广播
udp_socket.setsockopt(SOL_SOCKET,SO_BROADCAST,1)
data = input('>')
address=('192.168.13.127',5678)
address=('<broadcast>',5678)
udp_socket.sendto(data.encode('gbk'),address)
udp_socket.close()
print('哦了。。。')
UDP向飞秋发消息
'''
写代码,往某个机器发送消息
1、对方的IP 192.168.13.38
2、对方监听的端口号 5678
'''
from socket import *
创建UDP对象
udp_socket = socket(type=SOCK_DGRAM)
#客户端也可以绑定,系统就不会自动生成。否则对当前udp_socket对象系统会自动生成一个端口号
# udp_socket.bind(('',12345))
数据
data = input('>')
地址
address=('192.168.13.59',2425)
发送
udp_socket.sendto(data.encode('gbk'),address)
关闭
udp_socket.close()
print('哦了。。。')
模拟QQ
from threading import Thread
from socket import *
1. 收数据,然后打印
def recvData():
while True:
recvInfo = udpSocket.recvfrom(1024)
print(">>%s:%s" % (str(recvInfo[1]), recvInfo[0].decode('gbk')))
2. 检测键盘,发数据
def sendData():
while True:
date = input("<<")
udpSocket.sendto(date.encode("gbk"), (destIp, destPort))
udpSocket = None
destIp = ""
destPort = 0
def main():
global udpSocket
global destIp
global destPort
destIp = input("对方的ip:")
destPort = int(input("对方的port:"))
udpSocket = socket(AF_INET, SOCK_DGRAM)
udpSocket.bind(("", 12532))
tr = Thread(target=recvData)
ts = Thread(target=sendData)
tr.start()
ts.start()
tr.join()
ts.join()
if name == "main":
main()