java socket的一点疑惑

O_森_O 2013-09-30 02:34:47
今天看了看java socket,发现了一点疑惑的问题,因为javasocket这块儿接触的比较少,所以求大神来帮忙。
1.java在创建一个socket server的时候可以传入一个ip地址,这个地址如果不是你本机的地址会出现什么情况?
2.看代码注释Creates a socket address where the IP address is the wildcard address and the port number a specified value.这里面 wildcard address又是什么意思,中文解释为通配地址,不是很明白。
...全文
489 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sca4441479 2014-07-31
  • 打赏
  • 举报
回复
引用 10 楼 wfeng007 的回复:
现在流行 不给分了? -。-
楼主八成领了答案忘了结贴了,习惯就好。。
wfeng007 2014-07-31
  • 打赏
  • 举报
回复
现在流行 不给分了? -。-
O_森_O 2013-10-03
  • 打赏
  • 举报
回复
引用 8 楼 wfeng007 的回复:
[quote=引用 6 楼 wcs1989 的回复:] 这个明白了,那通配地址又是什么意思,如果一个机器有两个网卡,系统又是怎么选择网卡来启动socket的呢?
... 你配置ip地址首先就必须制定在那个(逻辑)网络设备上设置ip地址。ip地址不可能脱离设备进行设定。 一个机器有两个网卡,那你在设置ip地址的时候首先选择了某个网卡(口)。 另外,ip地址与设备口本来也是多对多关系。 一个ip下可以用两块网卡(口),这叫双网卡(口)绑定。一个物理网卡口有多个ip更常见,因为可以虚拟多个逻辑设备在一个物理设别之上。 搞io不明白系统平台可不行啊。 [/quote] 受教了
wfeng007 2013-10-02
  • 打赏
  • 举报
回复
引用 6 楼 wcs1989 的回复:
这个明白了,那通配地址又是什么意思,如果一个机器有两个网卡,系统又是怎么选择网卡来启动socket的呢?
... 你配置ip地址首先就必须制定在那个(逻辑)网络设备上设置ip地址。ip地址不可能脱离设备进行设定。 一个机器有两个网卡,那你在设置ip地址的时候首先选择了某个网卡(口)。 另外,ip地址与设备口本来也是多对多关系。 一个ip下可以用两块网卡(口),这叫双网卡(口)绑定。一个物理网卡口有多个ip更常见,因为可以虚拟多个逻辑设备在一个物理设别之上。 搞io不明白系统平台可不行啊。
oO临时工Oo 2013-09-30
  • 打赏
  • 举报
回复
引用 6 楼 wcs1989 的回复:
[quote=引用 4 楼 oOrayOo 的回复:]
public ServerSocket(int port, int backlog, InetAddress bindAddr) throws IOException 
难道是这个构造方法? 如果主机只有一个IP地址,那么默认情况下,服务器程序就与该IP地址绑定。ServerSocket的第4个构造方法ServerSocket(int port, int backlog, InetAddress bindAddr)有一个bindAddr参数,它显式指定服务器要绑定的IP地址,该构造方法适用于具有多个IP地址的主机。假定一个主机有两个网卡,一个网卡用于连接到Internet, IP地址为222.67.5.94,还有一个网卡用于连接到本地局域网,IP地址为192.168.3.4。如果服务器仅仅被本地局域网中的客户访问,那么可以按如下方式创建ServerSocket:
这个明白了,那通配地址又是什么意思,如果一个机器有两个网卡,系统又是怎么选择网卡来启动socket的呢?[/quote]
引用 6 楼 wcs1989 的回复:
[quote=引用 4 楼 oOrayOo 的回复:]
public ServerSocket(int port, int backlog, InetAddress bindAddr) throws IOException 
难道是这个构造方法? 如果主机只有一个IP地址,那么默认情况下,服务器程序就与该IP地址绑定。ServerSocket的第4个构造方法ServerSocket(int port, int backlog, InetAddress bindAddr)有一个bindAddr参数,它显式指定服务器要绑定的IP地址,该构造方法适用于具有多个IP地址的主机。假定一个主机有两个网卡,一个网卡用于连接到Internet, IP地址为222.67.5.94,还有一个网卡用于连接到本地局域网,IP地址为192.168.3.4。如果服务器仅仅被本地局域网中的客户访问,那么可以按如下方式创建ServerSocket:
这个明白了,那通配地址又是什么意思,如果一个机器有两个网卡,系统又是怎么选择网卡来启动socket的呢?[/quote] 区分的是各个网卡的地址,与网卡本身无关。 楼上说那个两个地址可能就分在两个不同的网卡上。
O_森_O 2013-09-30
  • 打赏
  • 举报
回复
引用 4 楼 oOrayOo 的回复:
public ServerSocket(int port, int backlog, InetAddress bindAddr) throws IOException 
难道是这个构造方法? 如果主机只有一个IP地址,那么默认情况下,服务器程序就与该IP地址绑定。ServerSocket的第4个构造方法ServerSocket(int port, int backlog, InetAddress bindAddr)有一个bindAddr参数,它显式指定服务器要绑定的IP地址,该构造方法适用于具有多个IP地址的主机。假定一个主机有两个网卡,一个网卡用于连接到Internet, IP地址为222.67.5.94,还有一个网卡用于连接到本地局域网,IP地址为192.168.3.4。如果服务器仅仅被本地局域网中的客户访问,那么可以按如下方式创建ServerSocket:
这个明白了,那通配地址又是什么意思,如果一个机器有两个网卡,系统又是怎么选择网卡来启动socket的呢?
异常异长 2013-09-30
  • 打赏
  • 举报
回复
传入的地址 是作为服务器的地址
RAY_MAO 2013-09-30
  • 打赏
  • 举报
回复
public ServerSocket(int port, int backlog, InetAddress bindAddr) throws IOException 
难道是这个构造方法? 如果主机只有一个IP地址,那么默认情况下,服务器程序就与该IP地址绑定。ServerSocket的第4个构造方法ServerSocket(int port, int backlog, InetAddress bindAddr)有一个bindAddr参数,它显式指定服务器要绑定的IP地址,该构造方法适用于具有多个IP地址的主机。假定一个主机有两个网卡,一个网卡用于连接到Internet, IP地址为222.67.5.94,还有一个网卡用于连接到本地局域网,IP地址为192.168.3.4。如果服务器仅仅被本地局域网中的客户访问,那么可以按如下方式创建ServerSocket:
O_森_O 2013-09-30
  • 打赏
  • 举报
回复
引用 1 楼 xiaomm627 的回复:
难道socket连接必须是在本机上进行的吗? 我可以连接其他机子上的服务端,ip地址相应的就是远程机器上的ip
我说的是socket server,不是client,本机ip指的是运行这个server的机器ip
xiaomm627 2013-09-30
  • 打赏
  • 举报
回复
是不是本机就都两种情况 1、连接上 可以进行会话 2、没连接上
xiaomm627 2013-09-30
  • 打赏
  • 举报
回复
难道socket连接必须是在本机上进行的吗? 我可以连接其他机子上的服务端,ip地址相应的就是远程机器上的ip

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧