----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
网络参考模型:
OSI参考模型 TCP/IP参考模型
应用层 |
| 应用层 |
表示层 | ||
会话层 | ||
传输层 | 传输层 | |
网络层 | 网际层 | |
数据链路层 | 主机至网络层 | |
物理层 |
网络通讯要素:
*IP地址:网络中设备的标识;不易记忆,可用域名代替;
*端口号:用于标识进程(即应用程序)的逻辑地址;
*传输协议:即通讯的规则;常见协议:TCP、UDP。
对通讯要素的注解:
1、Java中使用了一个InetAddress类对IP地址进行了封装,示例代码如下:
import java.net.*;
public class Test {
public static void main(String args[]) throws Exception{
InetAddress ia=InetAddress.getByName("www.shuangtv.net");
String address=ia.getHostAddress();
String name=ia.getHostName();
System.out.println("HostAddress:"+address);
System.out.println("HostName:"+name);
}
}
2、有效端口号:0~65535,其中0~1024是供系统使用的保留端口。
3、UDP、TCP各自的特点:
UDP协议:(类比:步话机;应用:QQ聊天、视频会议)
*将数据及源、目的封装成数据包进行发送,不需要建立连接;
*每个数据包的大小限制在64k以内;
*因为不无连接,所以该协议不可靠;
*因为不需要连接,所以速度较快。
TCP协议:(类比:打电话)
*需要建立连接,形成数据传输的通道;
*可进行大数据量传输;
*通过三次握手完成连接,比较可靠;
*因为需要建立连接,效率会稍低。
Socket
Socket是Java为网络间数据传输提供的一种机制;通信的两端各有一个Socket,网络通信其实就是Socket之间通过IO在进行通信。
注意,Socket编程位于网络参考模型的传输层。