先安装socket库
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 获得本机IP
myname = socket.getfqdn(socket.gethostname())
myaddr = socket.gethostbyname(myname)
# 绑定端口
s.bind((myaddr, 9527))
# 发送数据:
data = bytes([0x00, 0xFF, 0x00, 0x03])
s.sendto(data, ('192.168.1.1', 9527)) # 目的IP:192.168.1.1
# 接收数据:
recv_data = s.recv(8192)
s.close()
报错问题
在调试这个的时候,报过很多错,但最后发现都是因为程序没有完全结束,进程没有杀死,所以端口还一直被占用着。
Windows查看端口占用及释放的方法:
1.Win + R输入cmd打开cmd窗口;
2.输入命令,9527为端口,可以看到占用9527端口的任务是UDP,进程号为14648;
netstat -aon|findstr "9527"
3.输入命令,查看占用端口的进程,这里进程是pythonw.exe;
tasklist|findstr "14648"
4.打开Windows任务管理器,找到pythonw.exe,然后结束它就可以了.
也可以利用进程号直接找到该进程,在任务管理器中点击查看,选择列,勾选PID,然后在进程中就可以看到进程的进程号(PID)。