网络通信:两台设备之间通过网络实现数据传输
java.net包下提供了一系列的类或接口,供程序员使用,完成网络通信
IP地址:唯一标识主机
查看IP地址:ipconfig
IP地址的组成=网络地址+主机地址,如192.168.11.5 (192.168.11是网络地址)(5是主机地址)
域名:将ip地址映射成域名,方便用户记忆
端口:用于标识计算机上某个特定的网络程序(范围0-65535,即2个字节表示端口)
0-1024端口已经被占用,如ssh 22,ftp 21,smtp 25,http 80
常见的网络程序端口号:
tomcat:8080
mysql:3306
oracle:1521
sqlserver:1433
协议三要素:语法、语义、时序
在网络编程中,数据的组织形式就是协议
TCP和UDP
TCP协议:传输控制协议
1.使用tcp前,须先建立tcp连接,形成传输数据通道
2.传输前,采用“三次握手”方式,是可靠的
3.tcp进行通信的两个应用进程:客户端、服务端
4.在连接中可以进行大数据量的传输
5.传输完毕,需释放已建立的连接,效率低
UDP协议:用户数据协议
1.将数据、源、目的封装成数据包,不需要建立连接
2.每个数据包的大小限制在64k内,不适合传输大量数据
3.不可靠
4.速度快
Socket(套接字)
1.通信两端都要有Socket,是两台机器间通信的端点
2.网络通信其实就是Socket间的通信
3.Socket允许程序把网络连接当成一个流,数据在两个Socket间通过IO传输
4.主动发起通信的应用程序属于客户端,等待通信请求的为服务端
netstat -an 可以查看当前主机的网络情况,包括端口监听和网络连接情况
netstat -an|more 可以分页显示
netstat -anb 可以查看具体程序(以管理员身份查看)
tcp网络通信,当客户端连接到服务器端后,实际上客户端也是通过一个端口和服务端进行通讯的,这个端口是tcp/ip随机分配的