我正在尝试在特定端口上广播特定号码,某些设备在看到该号码后会响应。设备将回复以下信息:
MAC = 00:12:34:56:78:9a
IP = 10.17.253.98
网络采集模式= DHCP
支持的协议版本= 3
供应商=遗产
产品= USB
固件= 1.8.5
这是我的开始。具体号码为“222456”,端口号为12345,广播子网为10.17.253
len(m)=2
len(m[0])=10
/ô¢
len(m[1])=2
('10.17.253.22', 6971)
看着wireshark,我看到“222456”正在通过12345端口广播。但是,我得到的回报是:
/ô¢
除了没有得到我应该得到的,返回的IP不是正确的IP。我也不知道SSLServerSocketFactory ssf = (SSLServerSocketFactory)SSLServerSocketFactory.getDefault();
TreeMap<String, Boolean> ciphers = new TreeMap<>();
for (String cipher : ssf.getSupportedCipherSuites())
ciphers.put(cipher, Boolean.FALSE);
for (String cipher : ssf.getDefaultCipherSuites())
ciphers.put(cipher, Boolean.TRUE);
System.out.println("Default Cipher");
for (Entry<String, Boolean> cipher : ciphers.entrySet())
System.out.printf(" %-5s%s%n", (cipher.getValue() ? '*' : ' '), cipher.getKey());
的意思。
答案 0 :(得分:0)
当您尝试使用套接字发送消息时,您需要使用pickle,json或简单解码进行对象序列化。如果你想发送一个str,我认为最好的方法是创建一个.decode,但是如果你需要发送一个以上的str,你可以将信息放在一个列表上并使用pickle或json来进行对象序列化,也许你可以更改此项并将对象序列化放在sendto上。
m=s.recvfrom(8192)
到这个
data, addr =s.recvfrom(1024)
我不记得为什么,但是把1024作为最有效的方法(我认为),并且在获取数据后反过来对象序列化,.encode如果你使用.decode和pickle .loads。如果您使用的是Python 2,我认为您可以使用cPickle来执行此操作。在Python 3中,cPickle不存在,但他的方法是在pickle lib。