黑马程序员-java网络编程
来源:互联网 发布:长江大学有网络教育吗 编辑:程序博客网 时间:2024/06/06 00:34
----------- android培训、java培训、java学习型技术博客、期待与您交流! ---------
所谓计算机网络就是指通过某种方式将多台计算机进行连接,实现了多台计算机之间互联以及数据交换。同一网络中的计算机若想实现彼此之间的通信,必须通过编写网络程序来实现。
通过计算机网络可以使多台计算机实现连接,但要进行连接和通信时,要遵守一定的规则。在计算机网络中,这些连接和通信的规则称为网络通信协议,它对数据的传输格式、传输速率、传输步骤等做了统一的规定,通信双方必须同时遵守才能完成数据交换。通信协议有很多种,最为广泛的是TCP/IP协议、IP协议、UDP协议。
1、IP地址和端口号
要想在计算机网络中实现计算机间的通信,必须为每一台计算机指定一个标识号,通过这个标识号来指定接收数据的计算机或者发送数据的计算机,在TCP/IP协议中,这种标识号被称网iIP地址,它可以唯一标识一台计算机。
IP分为IPv4和IPv6,IPv4由4个字节大小的二进制位表示,由于二进制形式表示的IP不方便表示,因此通常将IP地址写成十进制的形式表示,每一个字节用0-255表示。
IPv6中包含字母,数量很大,用16个字节来表示,可以满足不断增长的Ip需求。
通过IP地址可以连接到指定的计算机,但如果想要访问目标计算机中的某一个应用程序,还需要指定需要的端口号。在计算机中,不同的应用程序是通过端口号来区分的。
端口号是用两个字节(16位二进制位表示)表示的,它的取值范围是0-65535,其中0-1024为系统所保留,其他的为用户其他应用程序所使用。
本地回环地址(localhost):dos命令ping 127.0.0.1,可以用此地址来判断,显卡是否工作正常。
2、网络模型:两种OSI参考模型和TCP/IP参考模型。
OSI 主要包括:应用层、表示层、会话层、传输层、网络层、数据联络层、物理层七部分组成。
TCP/IP包括: 应用层 、传输层、网络层、链路层四部分组成。
3、UDP和TCP协议的区别
UDP协议特点:(例子:对讲机)
a、不需要连接、将数据封装成多段数据包中。
b、每个数据包的大小不大于64KB。
c、因无需连接,所以是不可靠协议。
d、因为无需连接、所以效率和速度较快。
UDP应用领域:视频会议,电视转播等。
TCP协议特点:(例子:电话或手机)
a、需要建立连接,形成数据传输通道。
b、可以进行大数据量传输。
c、通过三次握手,形成可靠连接。
d、必须建立连接才能进行数据传输,所以效率较低。
TCP协议应用:下载文件。
三次握手的过程:第一次握手,客户端向服务器发出连接请求,等待服务器确认;第二次握手,服务器端向客户端送回一个响应,通知客户端收到了请求;第三次握手,客户端再次服务器端发送确认信息,确认连接。
三次握手,简化为:a、你在吗?b、在!c、我知道你在了。
4、InetAddress
import java.net.*;//导包
public class IPDemo
{
/*注意到这些方法可能会抛出的异常。如果安全管理器不允许访问DNS服务器或禁止网络连接,SecurityException会抛出,如果找不到对应主机的IP地址,或者发生其他网络I/O错误,这些方法会抛出UnknowHostException。*/
public static void main(String[] args)throws Exception
InetAddress la=InetAddress.getLocalHost();//获得实例
InetAddress ra=InetAddress.getByName("www.baidu.com");//获得实例
System.out.println("主机地址为:"+la.getHostAddress());
System.out.println("主机名称为:"+la.getHostName());
System.out.println("目标机地址为:"+ra.getHostAddress());
System.out.println("目标机名字为:"+ra.getHostName());
System.out.println("3秒是否可以到达目标:"+ra.isReachable(3000));
System.out.println("3秒是否可以到达本机:"+la.isReachable(3000));
}
}
运行结果:
- 黑马程序员-java网络编程
- 黑马程序员--java网络编程
- 黑马程序员-java-网络编程
- 黑马程序员 Java网络编程
- 黑马程序员----java网络编程
- 黑马程序员---网络编程【java】
- 黑马程序员 java网络编程
- 黑马程序员:JAVA网络编程
- 黑马程序员 Java网络编程
- 黑马程序员-java 网络编程
- 黑马程序员-------Java网络编程
- 黑马程序员------java网络编程
- 黑马程序员-java网络编程
- 黑马程序员 java 网络编程
- 黑马程序员-Java网络编程
- 【黑马程序员】java网络编程
- 黑马程序员-JAVA网络编程
- 黑马程序员--JAVA网络编程
- 简洁JS 日历控件 支持日期和月份选择
- 《算法竞赛入门经典》习题2-6 调和级数(harmony)
- DrawMeshNow用法
- mysql c连接失败的处理方法
- MeanShift算法(二)之运动目标跟踪
- 黑马程序员-java网络编程
- Android开发环境搭建教程
- POJ 1230 Pass-Muraille (贪心) 解题报告
- centos彻底删除mysql
- signal集程序一点疑问
- 专利无效的几种情况
- RHEL6.3系统安装
- Sicily 1134 积木分发
- 线性同余随机发生器