当前位置: 首页 > 知识库问答 >
问题:

我不能在java ServerSocket中分配多个地址

路伟
2023-03-14

谢谢你帮我。我试图用以下代码在我的java程序中运行多个服务器:

addr = InetAddress.getByName("127.0.0."+MyIP);
ss = new ServerSocket(port,100,addr);

但是代码只适用于myip=1,有没有办法解决这个问题呢?

共有1个答案

穆单鹗
2023-03-14

如果您询问一个系统是否可以有多个127.x.x.x地址,那么答案是“这取决于您的操作系统和网络配置”。

在我的Linux/Fedora20盒子上,“/etc/sysconfig/network-scripts/ifcfg-lo”将所有127.0.0.0/8定义为环回地址。然而,如果您查看该文件,其含义是“LO”设备可以配置为允许更少的地址(或者如果您疯了的话)其他地址作为环回IP地址。

在Mac OSX上,127.0.0.1是默认配置的唯一环回地址,但更多配置也很容易(参见参考资料)。

据我所知,在Windows7上只有一个环回地址--127.0.0.1。它是硬连线的,并由网络堆栈进行特殊处理。Windows确实有一个“环回适配器”,但其用途不同。

您的代码可以在Linux上运行,但不能在Windows上运行。在Mac OS/X上,您需要调整网络配置以使其正常工作。

参考资料:

    null

如果您希望使用多个IP地址侦听/接受,那么您需要使用多个ServerSocket实例。

然而,IP地址0.0.0.0被称为“本地通配符”地址。如果绑定到此,则实际上绑定到了所有网络接口(包括环回接口)的IP地址

另见:

    null
 类似资料:
  • 问题内容: 我在python中使用队列时,即使代码对我来说看起来很完美,但我仍然在代码中出现错误,但是后来当我突然更改赋值样式时,代码开始工作。该代码看起来像以前一样。 后来我改变了这个,它开始工作 为什么两个代码的工作方式不同? 问题答案: Python中的变量是引用或名称,不像C中的变量等。 这段代码: 表示“允许名称引用通过调用在内存中创建的对象,并允许该名称引用指向的对象。” 这意味着两个

  • 您好,我无法在数据库中添加多个用户。我想添加我的ArrayList中存在的所有用户。我的代码是: 我的模型是: 因此,我只将第一个用户添加到数据库中,而不将其他用户添加到数据库中。如何在数据库中添加所有用户?

  • 问题内容: 以下语句: 因错误而失败: 为什么在这里需要演员表? 我发现了几篇文章,解释了为什么您不能进行反向操作(将T分配给a),但这是显而易见的(可以理解)。 注意:我在Eclipse Luna下对此进行编码,所以我不知道这是Luna Quirk还是泛型中确实不了解的东西。 问题答案: 协方差vs协方差vs不变性 是 不变的 。 结果是, 是 不是一个亚型 的 在Java中,变量可以保存 相同

  • 问题内容: 在Python中,我们可以将函数分配给变量。例如,math.sine函数: 有没有简单的方法可以将多个函数(即一个函数的一个函数)分配给一个变量?例如: 问题答案: 我认为作者想要的是某种形式的功能链。通常,这很困难,但是对于 接受一个论点 返回一个值, 列表中上一个函数的返回值与列表中下一个函数的输入类型具有相同的返回值 我们说有一个需要链接的函数列表,其中有一个参数,然后返回一个参

  • 问题内容: 3年前,我可以在express.js中进行多个res.send。 甚至编写setTimeout来显示实时输出。 现在它将抛出: 我知道nodejs和express已更新。为什么现在不能这样做?还有其他想法吗? 找到了解决方案,但API参考http://expressjs.com/4x/api.html中没有“ res.write” … :S 问题答案: 也许您需要: 隐式调用,后跟。如

  • 我有一个服务器写在JavaServerSocket。 我有一个客户端,它位于一个公司防火墙之上,除了公共端口之外,它阻止了所有东西。 我已在SMTP端口(#25)上启动服务器。 有防火墙的用户连接到它,到目前为止一切正常。 然后服务器处理ServerSocket.accept()。据我所知,它在一个随机端口上创建一个套接字(每次端口号都不同)。因为防火墙而失败。 我的问题是-如何制作ServerS