![01adf85fc9c411c6f8d6c21338ecea7a.png](https://img-blog.csdnimg.cn/img_convert/01adf85fc9c411c6f8d6c21338ecea7a.png)
1.网络概念
把多台计算机通过物理线路连接起来,就形成了网络。目的在于交换数据和共享信息。
1.1 网络通信的三要素
【1】IP地址:唯一标识网络上的每一台计算机。两台计算机之间通信的必备有素
【2】端口号:计算机中应用的标号(代表一个应用程序)
0-1024系统使用或保留端口
常见端口:http:80 stmp: 25 ftp:21
有效端口0-65536,开发者可以的端口是1025-65536之间。一些第三方引用如 mysql:3306 oracle:1251。
【3】通信协议:通信的规则 TCP,UDP
1.2 网络通信模型
![89d159b8fc9554ea257830a8c14d1e9f.png](https://img-blog.csdnimg.cn/img_convert/89d159b8fc9554ea257830a8c14d1e9f.png)
IP地址分类
![880a27eca7a0fa80ca35013e7d8d7ffa.png](https://img-blog.csdnimg.cn/img_convert/880a27eca7a0fa80ca35013e7d8d7ffa.png)
特殊IP
• 0.0.0.0:本机
• 127.0.0.1:本机回环地址,用于本机测试
• 255.255.255.255:当前子网,一般用于向当前子网广播信息
2. InetAddress
InetAddress 表示IP地址。
public
3. TCP编程
TCP编程中,如果要完成通信,通信双方必须要创建socket,通过socket完成通信。
TCP通信步骤:
[1] 服务器启动ServerSocket作为通信的Server端,等待客户端链入。
[2] 客户端创建Socket作为通信的Client端
[3] Client端链入Server端后建立可靠的、双向的、持续性的、点对点的通讯连接,即可通信。
例:完成一次单向通信。(服务器端)
import
客户端
import
常见问题:
[1] 端口被占用(java.net.BindException: Address already in use: JVM_Bind)
[2] 服务器未启动(java.net.ConnectException: Connection refused: connect)
[3] 连接超时异常( SocketTimeoutException)
当网速很慢时,可能发生连接超时异常。
例:上传一张图片到服务器
客户端
import
服务端
import