网络基础概念是网络编程的基础,网络编程不仅仅是网站编程,而是指使用TCP/IP协议进行通信的编程。在网络通信中,协议和接口是非常重要的,通信协议分层思想也是非常重要的参考模型之一。

IP协议是Internet Protocol的缩写,每个电脑都有一个独一无二的IP地址,这样互相通信时就不会传错信息了。IP地址是用一个点来分成四段的,在计算机内部IP地址是用四个字节来表示的,一个字节代表一段,每一个字节代表的数最大只能到达255。

TCP协议和UDP协议位于同一层,都是建立在IP层的基础之上。由于两台电脑之间有不同的IP地址,因此两台电脑就可以区分开来,也就可以互相通话了。通话一般有两种通话方式:第一种是TCP,第二种是UDP。TCP是可靠的连接,TCP就像打电话,需要先打通对方电话,等待对方有回应后才会跟对方继续说话,也就是一定要确认可以发信息以后才会把信息发出去。TCP上传任何东西都是可靠的,只要两台机器上建立起了连接,在本机上发送的数据就一定能传到对方的机器上。UDP就好比发电报,发出去就完事了,对方有没有接收到它都不管,所以UDP是不可靠的。TCP传送数据虽然可靠,但传送得比较慢;UDP传送数据不可靠,但是传送得快。

Socket编程是网络编程中最常用的一种方法。Socket指的是一个插座或者插口。两台电脑都安装上一个插座(即Socket),然后使用一根线的两端插到两台电脑的插座上(即Socket),这样两台电脑就建立了连接。这个插座就是Socket。因为互相之间都能互相通信,我说你是我的Server只是从逻辑意义上来讲 。

端口号在计算机内部占用2个字节,一台机器上最多可以有65536个端口号。一个应用程序可以占用多个端口号,但如果某个端口号被一个应用程序占用,其他应用程序将无法再使用该端口号。需要注意的是,编写程序时应尽量使用1024以上的端口号,因为1024以下的端口号可能会被系统随时征用。

端口号分为TCP端口和UDP端口,它们是完全不同的两个概念。TCP端口和UDP端口都有65536个。

八、TCP Socket通信模型

九、Socket使用范例

服务器端:

```java

ServerSocket serverSocket = new ServerSocket(6666);

Socket socket = serverSocket.accept();

// 与客户端进行通信

serverSocket.close();

```

客户端:

```java

Socket socket = new Socket("localhost", 6666);

// 与服务器端进行通信

socket.close();

```