如何在Java中临时禁用网络连接?
发布于 2011-02-04 08:06:06
要做到这一点,一种相当复杂但可行的方法是创建自定义套接字实现工厂。您可以通过调用Socket.setSocketImplFactory()来注册它。
然后,您的自定义工厂必须返回自定义套接字实现,以便在每次连接尝试时抛出IOException。
请注意,这只会停止传出连接,如果您想要停止应用程序也接受传入连接,则必须在ServerSocket上使用类似的技巧。
发布于 2011-02-04 08:04:00
这些能行得通吗?在windows上:
Runtime.getRuntime ().exec ("ipconfig/release");在linux上(假设网络接口名为eth0:
Runtime.getRuntime ().exec ("ifconfig eth0 down");发布于 2011-02-04 07:59:51
不幸的是,禁用网络连接是特定于操作系统的,我不知道有任何标准的Java来访问这些操作系统特性。对于您打算支持的每个操作系统,您可能必须进行一些特定于操作系统的编码,例如,通过JNI或执行外部程序。还需要使用适当的权限调用Java程序,才能允许其扰乱网络接口。
https://stackoverflow.com/questions/4893129
复制相似问题