基本介绍:
- 基于客户端——服务端的网络通信
- 底层使用的是TCP/IP协议
- 应用场景举例:客户端发送数据,服务端接受并显示控制台
- 基于Socket的TCP编程
- 当客户端连接到服务端后,实际上客户端也是通过一个端口和服务端进行通讯的,这个端口是TCP/IP来分配,是不确定的,随机的
应用案例1:(使用字节流)
- 编写一个服务器端,和一个客户端
- 服务器端在9999端口监听
- 客户端连接到服务器端,发送”hello, server”,然后退出
- 服务器端接收到客户端发送的信息,输出,并退出
示意图:注意写的是两个程序
一个ServerSocket可以对应多个socket
应用案例2:(使用字节流)
- 编写一个服务器端,和一个客户端
- 服务器端在9999端口监听
- 客户端连接到服务器端,发送”hello, server”,并接收服务器端回发的”hello, client”,再退出
- 服务器端接收到客户端发送的信息,输出,并发送”hello, client”,再退出
应用案例3:(使用字符流)
- 编写一个服务端,和一个客户端
- 服务端在9999端口监听
- 客户端连接到服务端,发送”hello, server”,并接收服务端回发的”hello, client”,再退出
- 服务端接收到客户端发送的信息,输出,并发送”hello, client”,再退出
结束标记也可以使用writer.newLine(),使用writer.newLine()时,对方需要使用readLine()读取
应用案例4:
- 编写一个服务端,和一个客户端
- 服务器端在8888端口监听
- 客户端连接到服务端,发送一张片e:\qie.png
- 服务器端接收到客户端发送的图片,保存到src下,发送“收到图片“再退出
- 客户端接收到服务端发送的”收到图片”,再退出
- 该程序要求使用 StreamUtils.java
说明:使用BufferedInputStream和BufferedOutputStream字节流
示意图:
netstat指令
- netstat-an:可以查看当前主机网络情况,包括端口监听情况和网络连接情况
- netstat -an | more:可以分页显示
- 要求在dos控制台下执行