java socket 客户端 ip_java中的IP地址问题

有以下代码:

服务器端

ServerSocket svsocket=new ServerSocket(8000);

Socket socket=svsocket.accept();

有以下情况

socket.getLocalAddress();

socket.getLocalAddress().getHostAddress();

socket.getInetAddress();

socket.getInetAddress().getHostAddress();

socket.getPort();

socket.getLocalPort();

客户端

Socket socket=new Socket(InetAddress.getByName(server),serPort);

有以下情况

socket.getLocalAddress();

socket.getLocalAddress().getHostAddress();

socket.getInetAddress();

socket.getInetAddress().getHostAddress();

socket.getPort();

socket.getLocalPort();

基本情况如下:

假如服务器的IP=202.202.0.1

客户端通过宽带上网,DNS=202.168.196.28    网关为192.168.0.1     本机IP为固定IP:192.168.0.93    域用户服务器为192.169.0.1

请问:如果在internet上

服务器器端的代码返回什么?

客户端代码返回什么?

如果在局域网内

假如服务器IP=192.168.0.1

客户端IP=192.168.0.93

分别考虑客户端加入域和不加入域的情况

服务器器端的代码返回什么?

客户端代码返回什么?

还有,上述代码分别代表什么意思?如何通过Socket取得一个服务器的地址,服务器如何通过Socket取得客户端地址?

小弟搞不明白,请各位大虾小虾指点一二,先谢过了

|

1、在internet上:

服务器端:所有的local都显示本地的信息,包括:端口、地址等;所有的

inetaddress都显示client端的信息,其中:ip是202.168.196.28,端口是

不定的

2、在局域网中:

如果没有子网掩码,他们都是一个网段上的显示的都是对方和自己的真实ip

3、ServerSocket支持的是tcp协议,它只需要port即可,因为它是服务器,所以

它可以获得本地的地址;在客户端就需要知道server端的ip,port才可以通

信!其中的InetAddress就是java中用来处理ip地址格式数据的类,通过

InetAddress.getName(server)(其中server相信是server端的ip地址)就

处理了server的ip地址格式, 返回一个inetaddress 对象。

这些只是我的一些理解,请各位大侠指正!

|

帮你up

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值