那里大约有15个独立的问题,但我会尽力解决这些问题:
有一个bind()方法,以及一个connect()和disconnect()。没有unbind()。这是因为断开连接后套接字没有绑定吗?
bind()与
connect()和分开
disconnect()。绑定用于将套接字绑定到特定端口-
有效地“监听”连接,而
connect()用于打开与已经在特定端口上侦听的套接字的连接。相当于
unbind()是
close()
程序退出后,垃圾回收会处理吗?还是这不是一个有效的问题?
尽管垃圾回收是一种用于内存管理而非套接字/
OS资源管理的技术,但这是一个完全正确的问题。如果您不释放特定端口,它将一直与您的应用程序关联,直到您的应用程序终止,然后操作系统将其回收。这是操作系统级别的功能,而不是JVM功能等。
另外,在创建DatagramSocket时,如果我仅提供端口或提供端口和地址,会有什么不同?
在某些时候,您必须提供您希望连接或绑定的Internet地址和端口或套接字。没有办法解决。
我正在创建一个程序来收集网络外的数据,因为数据会浮动并记录下来。我应该只使用本地地址吗?创建套接字时无法使用该地址导致我无法收集数据包?
我不确定您在这里要问什么,您是在谈论记录网络上的所有数据包,也就是嗅探器吗?这不仅需要简单的数据报编程。实际上,您必须在网络适配器级别注入自己,以截取离线读取的数据包。您正在谈论的内容仅允许您接收发送到正在侦听的特定端口的数据包。



