使用Linux和Python,我想通过广播发送一些数据:d=b'109u433279423423423'importsockets=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)s.sendto(d,0,('192.168.0.255',9))我在root下启动这个脚本并得到这个错误:s.sendto(d,0,('192.168.0.255',9))socket.error:[Errno13]Permissiondenied怎么了? 最佳答案 您正在尝试发送到一个广播地址。这是不允许的
我最近深入研究了使用java的套接字编程,我有一些一般性的问题。有一个bind()方法,以及一个connect()和disconnect()。没有解除绑定(bind)()。这是因为断开连接后套接字未绑定(bind)吗?一旦程序退出,垃圾收集会处理这个问题吗?或者这甚至不是一个有效的问题?此外,在创建DatagramSocket时,如果我只提供端口和地址有什么不同?我正在创建一个程序来收集网络外的数据,因为数据四处流动并记录下来。我应该只使用本地地址吗?无法在创建套接字时使用地址导致我无法收集数据包?我只是想更深入地了解这些东西的内部运作方式。 最佳答案
这个问题NOT是关于STREAM类型和DATAGRAM类型INTERNET套接字的区别。我知道STREAM套接字使用TCP,数据报套接字使用UDP以及所有TCP、UDP内容、按顺序到达的数据包、ACK、NACK等。我了解这些在互联网上的重要性。Q1)当我创建一个本地套接字的UNIX域套接字时,该套接字是STREAM套接字还是DATAGRAM套接字有什么关系。这种类型的套接字会将数据写入套接字文件,在这种情况下协议(protocol)是否重要,因为我没有通过网络传输数据?如果我使用基于UNIX的DATAGRAM套接字,在这种情况下是否有可能丢失数据?Q2)UNIXDATAGRAM套接字是