import java.net.InetSocketAddress;
import java.net.ServerSocket;
public class Test
{
public static void main(String[] args) throws Exception
{
try (ServerSocket socket1 = new ServerSocket();
ServerSocket socket2 = new ServerSocket();
ServerSocket socket3 = new ServerSocket())
{
int port = 10000;
socket1.setReuseAddress(false);
socket1.bind(new InetSocketAddress("0.0.0.0", port));
socket2.setReuseAddress(false);
socket2.bind(new InetSocketAddress("127.0.0.1", port));
socket3.setReuseAddress(false);
socket3.bind(new InetSocketAddress("127.0.0.2", port));
Thread.sleep(Long.MAX_VALUE);
}
}
}
C:\Users\Administrator>netstat -a -n | findstr 10000 TCP 0.0.0.0:10000 0.0.0.0:0 LISTENING TCP 127.0.0.1:10000 0.0.0.0:0 LISTENING TCP 127.0.0.2:10000 0.0.0.0:0 LISTENING TCP [::]:10000 [::]:0 LISTENING
我正在Windows Server 2008 R2(64位)上运行此操作,并且'ipconfig/all'只显示一个网络适配器/接口(其他网络适配器被禁用)。但是,在其他一些机器上,这个程序实际上会抛出预期的“java.net.bindexception:Address已经在使用:jvm_bind”!
会发生什么事?
您可以绑定在不同IP地址上的相同端口号上。操作系统可以通过目标IP地址和TCP端口号来区分传入的数据包。
操作系统为127.0.0.1:1000
和127.0.0.2:1000
保留单独的serverSocket没有问题。它知道每个数据包属于哪里--即使它打开了一个新的连接。
请注意,IP地址0.0.0.0
只是一个IP地址(它不是一个有效的IP地址,因为IP数据包可以发送到那里,但我也不支持0.0.0.0==any
)。如果您想侦听所有地址,请将null
提供给InetSocketAddress。此时,您获得所需异常的几率更大(除非OS决定通配符侦听具有较低的优先级,并且不会真正与特定侦听重叠,因此它们可以将两者绑定)。
问题内容: 我遵循Presentation Model模式对一些屏幕进行编码。 我把一些豆子放在一个 我将在中显示此列表的内容,这要归功于 我还想同时在组合框(以表单的形式)中显示此列表中的 某些记录* , 并同时 在JList中显示 其他 记录。 *** 这三个屏幕(及其模型)彼此独立 如何管理在我的列表中添加{一个或多个} /删除{一个或多个}并在各处实时查看更改? 我将要编写自己的Obser
问题内容: 使用Netty时,令我感到惊讶的是,如果使用复用地址选项,它允许ServerSocket绑定到相同的地址而不会引发“已经绑定异常” 我只是以为reuseAddress允许新套接字重用关闭等待套接字,但这是不同的。以下是netstat命令的结果 我想念什么吗?这是怎么回事? 问题答案: 由于历史原因,我认为Windows允许这样做。这是一个安全问题。有关所涉及的选项如何交互的一些信息,请
我有一个预览页面,需要添加或编辑模型,并显示预览。 我需要从添加表单页和编辑表单页调用预览。我要通过的模型是相同的,但来自不同的形式。 (1) ModelAttribute是否有支持这种多属性名称映射的方法?(2) 我怎么能考虑重新设计这个?考虑(a)在表单提交之前重命名表单名称/属性以使用相同的属性名称。(b) 完全删除ModelAttribute——这不是我的选项,因为我使用的是SpringM
问题内容: 我想知道是否可能有一个ng类,其中class一度绑定,并且每个摘要周期评估一次class。 我知道我可以一次绑定完整的ng-class, 但是我需要一次绑定一个特定的表达式 当然,这是行不通的: 有办法吗? 问题答案: 方法1: 方法2:
问题内容: 上面的语句返回3行。但是下面的语句仅返回2行。 我知道为什么会这样,但是有一种方法可以强制item_id 1返回两次? 我要退货的示例: id-> 1筹码€2.50 id-> 1筹码€2.50 id-> 2可口可乐€1.60 -------------------- 总计€6.60 问题答案: 您可以加入另一个表,例如 或者只是在您的应用程序中复制它们。 您实际上不需要做您所要的。
问题内容: 我正在尝试为我的数据库实现一个非常基本的搜索引擎,其中用户可能包含各种信息。搜索本身包含几个联合选择,其中结果总是合并为3列。 但是,返回的数据是从不同的表中获取的。 每个查询都使用$ term进行匹配,并将其绑定到“:term”作为预备参数。 现在,该手册说: 调用PDOStatement :: execute()时,对于要传递给语句的每个值,必须包含一个唯一的参数标记。您不能在准备