端口号是一个2字节16位的整数;
端口号用来标识一个进程,告诉操作系统,当前这个数据交给哪一个程序进行解析;
IP地址 + 端口号能标识网络上的某一台主机的某一个进程;
一个端口号只能被一个进程占用。 传输协议
UDP(User Datagram Protocol ):是OSI参考模型中的传输层协议,是一个简单的面向消息的传输层协议,尽管UDP提供标头和有效负载的完整性验证(通过校验和),但它不保证向上层协议提供消息传递,并且UDP层在发送后不会保留UDP 消息的状态。因此,UDP有时被称为不可靠的数据报协议。如果需要传输可靠性,则必须在用户应用程序中实现。 UDP使用具有最小协议机制的简单无连接通信模型。UDP提供数据完整性的校验和,以及用于在数据报的源和目标寻址不同函数的端口号。 相当于収短信(有字数限制),不需要建立连接,数据报的大小限制在64k内,效率较高,不安全,容易丢包
TCP(Transmission Control Protocol ):把连接作为最基本的对象,每一条TCP连接都有两个端点,这种断点我们叫作套接字(socket),它的定义为端口号拼接到IP地址即构成了套接字,例如,若IP地址为192.3.4.16 而端口号为80,那么得到的套接字为192.3.4.16:80。 相当于打电话,需要建立连接,效率相对比较低,数据传输安全,三次握手完成。 (点名—>答到—>确认) Socket套接字
Socket (套接字)可以看成是两个网络应用程序进行通信时,各自通信连接中的端点,这是一个逻辑上的概念。
这个连接的一端称为一个socket。
Java中使用Socket完成TCP程序的开収,使用此类可以方便的建立可靠的、双向的、持续性的、点对点的通讯连接
在Socket的程序开収中,服务器端使用ServerSocket等待客户端的连接
对于java的网络程序来讲,每一个客户端都使用一个Socket对象表示
获得百度的主机名和一些基本方法使用
import java.net.InetAddress;
import java.net.UnknownHostException;
public class InetAddressDemo {
public static void main(String[] args) throws UnknownHostException {
InetAddress inetAddress = InetAddress.getLocalHost();
System.out.println(inetAddress);
InetAddress address = InetAddress.getByName("www.baidu.com");
System.out.println(address);
System.out.println(address.getHostName());
System.out.println(address.getHostAddress());
}
}
运行图



