黑马程序员_网络编程(一)

来源:互联网 发布:python writeline 编辑:程序博客网 时间:2024/05/18 01:56
------- android培训、java培训、期待与您交流! ----------
网络通讯模型分为OSI模型和TCP/IP模型。OSI模型是国际标准化组织制定的理想化模型,而现在使用的是TCP/IP模型。如下图,模型分为应用层、传输层(TCP)、网际层(IP)和主机至网络层,我们主要在应用层和传输层之间进行Socket网络编程。

网络通信的三个要素:
1.IP地址:IP地址唯一标识一台主机地址,通过IP地址可找到目的主机。
2.端口号:端口号唯一标识目的主机上的某一网络应用程序。
3.定义通讯规则,即数据封装和拆包规则,国际组织定义了通用协议TCP/IP。

如下图,本机上的网络应用程序QQ要将数据发送到目的主机上同样运行的QQ程序,需要知道目的主机的IP地址和程序端口号,数据将由传输层开始向下封装,至物理层经物理线路发送到目的主机,只有由物理层向上拆包,最终发送给应用程序。


接下来,正式入手JAVA网络编程:
首先,IP地址在JAVA中被封装成InetAddress类。
获取本地主机
try {//获取本地主机InetAddress i = InetAddress.getLocalHost();//打印获取的主机名称System.out.println(i.getHostName());//打印获取的主机地址System.out.println(i.getHostAddress());} catch (UnknownHostException e) {e.printStackTrace();}
获取任意主机
try {//通过主机名称获取主机IPInetAddress i = InetAddress.getByName("61.135.169.121");//打印主机名称System.out.println(i.getHostName());//打印主机IP地址System.out.println(i.getHostAddress());} catch (UnknownHostException e) {e.printStackTrace();}
通过名称获取所有主机IP
try {//通过主机名称获取所有IP地址InetAddress[] i = InetAddress.getAllByName("www.baidu.com");//打印每台服务器的名称和IPfor(int j = 0; j < i.length; j++) {System.out.println(i[j].getHostName());System.out.println(i[j].getHostAddress());}} catch(UnknownHostException e) {e.printStackTrace();}

端口号:是0~65535之间的数字,非对象。
未完待续。。。

0 0
原创粉丝点击