Java 网络编程的一些概念

网络编程:实现连接到网络的计算机之间的网络通信,比如QQ的聊天、传文件。

ip:一台计算机在网络中的唯一标识

查看本机ip:windows是ipconfig,linux是ifconfig

ipv4:4个整数,0-255之间,点号分隔,比如192.168.1.1,约42亿个地址,2011年初已耗尽

ipv6:8组,每组4个16进制数,冒号分隔,比如ABCD:0000:2C4F:0000:0000:EF01:2345:6789

扫描二维码关注公众号,回复: 10097527 查看本文章

如果一组全是0,可缺省,上面的地址可简写为ABCD::2C4F:0000:0000:EF01:2345:6789,但只能缺省一次(只能出现一次::) 

也可以简写为ABCD:0000:2C4F::EF01:2345:6789,缺省了2组0

本地回路地址:127.0.0.1(ipv4)      ::1(ipv6)

广播地址:255.255.255.255

端口号:唯一标识一台机器上的某个程序。ip确定是哪台机器,port确定是这台机器上的哪个程序。

范围:0-65535,尽量使用1024以上的端口号,1024以下的基本都被OS用了。

协议:

  • TCP  面向连接(3次握手),数据安全(需要对方存在、且已启动才能进行通信),因为要保证传输安全,所以传输速度略慢,要区分客户端、服务端。
  • UDP  无连接,数据不安全(直接发送数据,不管对方是否存在、是否已启动),速度快,不区分客户端、服务端

三次握手:客户端先向服务器发起请求,服务端响应请求,客户端向服务器传输数据。

套接字(socket):

ip:port的形式,由ip、port组成(唯一标识)。

通信的两端都有socket,网络通信其实就是socket之间的通信,数据在2个socket之间通过IO流传输。

这也是网络通信的原理。

猜你喜欢

转载自www.cnblogs.com/chy18883701161/p/12554612.html