问题描述
今天看了看javasocket,发现了一点疑惑的问题,因为javasocket这块儿接触的比较少,所以求大神来帮忙。1.java在创建一个socketserver的时候可以传入一个ip地址,这个地址如果不是你本机的地址会出现什么情况?2.看代码注释CreatesasocketaddresswheretheIPaddressisthewildcardaddressandtheportnumberaspecifiedvalue.这里面wildcardaddress又是什么意思,中文解释为通配地址,不是很明白。
解决方案
解决方案二:
难道socket连接必须是在本机上进行的吗?我可以连接其他机子上的服务端,ip地址相应的就是远程机器上的ip
解决方案三:
是不是本机就都两种情况1、连接上可以进行会话2、没连接上
解决方案四:
引用1楼xiaomm627的回复:
难道socket连接必须是在本机上进行的吗?我可以连接其他机子上的服务端,ip地址相应的就是远程机器上的ip
我说的是socketserver,不是client,本机ip指的是运行这个server的机器ip
解决方案五:
publicServerSocket(intport,intbacklog,InetAddressbindAddr)throwsIOException
难道是这个构造方法?如果主机只有一个IP地址,那么默认情况下,服务器程序就与该IP地址绑定。ServerSocket的第4个构造方法ServerSocket(intport,intbacklog,InetAddressbindAddr)有一个bindAddr参数,它显式指定服务器要绑定的IP地址,该构造方法适用于具有多个IP地址的主机。假定一个主机有两个网卡,一个网卡用于连接到Internet,IP地址为222.67.5.94,还有一个网卡用于连接到本地局域网,IP地址为192.168.3.4。如果服务器仅仅被本地局域网中的客户访问,那么可以按如下方式创建ServerSocket:
解决方案六:
传入的地址是作为服务器的地址
解决方案七:
引用4楼oOrayOo的回复:
publicServerSocket(intport,intbacklog,InetAddressbindAddr)throwsIOException难道是这个构造方法?如果主机只有一个IP地址,那么默认情况下,服务器程序就与该IP地址绑定。ServerSocket的第4个构造方法ServerSocket(intport,intbacklog,InetAddressbindAddr)有一个bindAddr参数,它显式指定服务器要绑定的IP地址,该构造方法适用于具有多个IP地址的主机。假定一个主机有两个网卡,一个网卡用于连接到Internet,IP地址为222.67.5.94,还有一个网卡用于连接到本地局域网,IP地址为192.168.3.4。如果服务器仅仅被本地局域网中的客户访问,那么可以按如下方式创建ServerSocket:
这个明白了,那通配地址又是什么意思,如果一个机器有两个网卡,系统又是怎么选择网卡来启动socket的呢?
解决方案八:
引用6楼wcs1989的回复:
Quote: 引用4楼oOrayOo的回复:
publicServerSocket(intport,intbacklog,InetAddressbindAddr)throwsIOException难道是这个构造方法?如果主机只有一个IP地址,那么默认情况下,服务器程序就与该IP地址绑定。ServerSocket的第4个构造方法ServerSocket(intport,intbacklog,InetAddressbindAddr)有一个bindAddr参数,它显式指定服务器要绑定的IP地址,该构造方法适用于具有多个IP地址的主机。假定一个主机有两个网卡,一个网卡用于连接到Internet,IP地址为222.67.5.94,还有一个网卡用于连接到本地局域网,IP地址为192.168.3.4。如果服务器仅仅被本地局域网中的客户访问,那么可以按如下方式创建ServerSocket:
这个明白了,那通配地址又是什么意思,如果一个机器有两个网卡,系统又是怎么选择网卡来启动socket的呢?
引用6楼wcs1989的回复:
Quote: 引用4楼oOrayOo的回复:
publicServerSocket(intport,intbacklog,InetAddressbindAddr)throwsIOException难道是这个构造方法?如果主机只有一个IP地址,那么默认情况下,服务器程序就与该IP地址绑定。ServerSocket的第4个构造方法ServerSocket(intport,intbacklog,InetAddressbindAddr)有一个bindAddr参数,它显式指定服务器要绑定的IP地址,该构造方法适用于具有多个IP地址的主机。假定一个主机有两个网卡,一个网卡用于连接到Internet,IP地址为222.67.5.94,还有一个网卡用于连接到本地局域网,IP地址为192.168.3.4。如果服务器仅仅被本地局域网中的客户访问,那么可以按如下方式创建ServerSocket:
这个明白了,那通配地址又是什么意思,如果一个机器有两个网卡,系统又是怎么选择网卡来启动socket的呢?
区分的是各个网卡的地址,与网卡本身无关。楼上说那个两个地址可能就分在两个不同的网卡上。
解决方案九:
引用6楼wcs1989的回复:
这个明白了,那通配地址又是什么意思,如果一个机器有两个网卡,系统又是怎么选择网卡来启动socket的呢?
...你配置ip地址首先就必须制定在那个(逻辑)网络设备上设置ip地址。ip地址不可能脱离设备进行设定。一个机器有两个网卡,那你在设置ip地址的时候首先选择了某个网卡(口)。另外,ip地址与设备口本来也是多对多关系。一个ip下可以用两块网卡(口),这叫双网卡(口)绑定。一个物理网卡口有多个ip更常见,因为可以虚拟多个逻辑设备在一个物理设别之上。搞io不明白系统平台可不行啊。
解决方案十:
引用8楼wfeng007的回复:
Quote: 引用6楼wcs1989的回复:
这个明白了,那通配地址又是什么意思,如果一个机器有两个网卡,系统又是怎么选择网卡来启动socket的呢?...你配置ip地址首先就必须制定在那个(逻辑)网络设备上设置ip地址。ip地址不可能脱离设备进行设定。一个机器有两个网卡,那你在设置ip地址的时候首先选择了某个网卡(口)。另外,ip地址与设备口本来也是多对多关系。一个ip下可以用两块网卡(口),这叫双网卡(口)绑定。一个物理网卡口有多个ip更常见,因为可以虚拟多个逻辑设备在一个物理设别之上。搞io不明白系统平台可不行啊。
受教了
解决方案十一:
现在流行不给分了?-。-
解决方案十二:
引用10楼wfeng007的回复:
现在流行不给分了?-。-
楼主八成领了答案忘了结贴了,习惯就好。。