黑马程序员_java 网络编程-1
来源:互联网 发布:忘尘娇喘 网络歌手 编辑:程序博客网 时间:2024/06/07 02:23
------- android培训、java培训、期待与您交流! ----------
网络编程其实是为了实现不同主机上的数据通信,而要实现通讯则需要首先知道对方的IP和端口号,同时明确双方使用的通信规则,或传输协议。
Ip地址、端口号和传输协议,即是网络通讯的三要素。
IP地址:主机在网络的地址,或者在网上的唯一标识。
127.0.0.1,本地回环地址,用它可以测试网卡是否损坏;还有些IP地址保留了,不用于广域网,只用于局域网,
例如:192.168.0.1~255,192.168.1.1~255等。
端口号:数据要发送到对方指定的应用程序上,为了标识这些应用程序,所以给这些网络应用程序都用数字进行标识,为了方便称呼这个数字,就这个数组叫为“端口”,或“逻辑端口”,它并没有物理实体与之对应。有效端口好从0~65535,其中0~1024是系统保留的。一些常用程序的默认端口:浏览器80端口,TomCat服务器8080端口,MySQL的3306端口。
通信规则:即传输协议,国际组织定义的通用协议是TCP/IP。TCP/IP既能用于局域网,也能用于广域网。除了TCP/IP,还有其他的协议,例如UDP、FTP、HTTP等。
网络模型
主要由两个OSI和TCP/IP模型,其分层情况如下:
TCP和UDP在传输层。IP协议在网络层。FTP协议、HTTP协议在应用层。
数据封包:数据从应用层开始,每经过一层都加入该层的标识信息,直到物理层,这个过程就叫数据封包。之后变成二进制01数据从物理设备上传输。
数据拆包:与封包过程正好相反,指去掉每层的标识信息,获取数据的过程。
网络编程:现阶段主要是在网际层和传输层。而javaWeb开发主要是在应用层。
Java中,对各个层都创建了有对象与之对应,以方便我们的开发使用。下边主要学习传输层的一些对象,比如InetAddress、Socket、DatagramSocket。
IP地址
IP地址是数字,使用时不容易记忆,所以有与这个地址名想对应的主机名。主机名与IP地址相对应。
体系结构:
|----InetAddress
|----Inet4Address,
|----Inet6Address
InetAddress中没有提供构造函数,但它提供了多种静态方法,以获取本类对象。
Socket地址
封装的是带端口号的IP地址
|——SocketAddress
|——InetSocketAddress
解析新浪IP地址实例:
import java.net.*;class IPDemo{public static void main(String[] args) throws Exception{//下边这句话会报未知主机异常/*
获取本地主机IP地址InetAddress i=Address.getLocalHost();System.out.println(i.toString());String adr = i.getHostAddress();String name = i.getHostName();sop("adr="+adr+" name="+name);*///获取其他主机IP地址//通过主机名获取IP地址,需要解析,所以较慢,而且对于百度、新浪这样的主机名,获得的IP地址可能不唯一。InetAddress i= InetAddress.getByName("www.sina.com");System.out.println(i.toString());String adr = i.getHostAddress();//获得IP地址的字符串表现形式String name = i.getHostName();//获取主机名sop("adr="+adr+" name="+name);}public static void sop(Object obj){System.out.println(obj);}}
- 黑马程序员_java 网络编程-1
- 黑马程序员_java网络编程1
- 黑马程序员_Java 网络编程
- 黑马程序员_Java网络编程
- 黑马程序员_java网络编程
- 黑马程序员_java网络编程
- 黑马程序员_Java网络编程
- 黑马程序员_java网络编程
- 黑马程序员_java 网络编程
- 黑马程序员_java网络编程
- 黑马程序员_java网络编程
- 黑马程序员_java 网络编程
- 黑马程序员_java网络编程
- 黑马程序员_Java网络编程
- 黑马程序员_Java网络编程
- 黑马程序员_java网络编程
- 黑马程序员_java网络编程
- 黑马程序员_Java网络编程
- IT人需要好心态
- hibernate注解(一)
- Codeforces Round #176 (Div. 2) B. Pipeline//二分查找
- 第三次程序报告(课堂练习)
- Android——关于ListView控件的使用方法
- 黑马程序员_java 网络编程-1
- struts.xml配置文件(package,namespace,action)
- 黑马程序员_java的反射机制
- 一口一口吃掉Struts(十)——异常自动处理机制
- Spring事物传播特性详解
- 黑马程序员——java编程那些事儿____java基础(二) java基本语法
- struts.xml配置文件(package,namespace,action)
- 黑马程序员-String类和StringBuffer
- 12步改进QTP测试性能