Java 序列化
Java网络编程
所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。我们开发的网络应用程序位于应用层,TCP和UDP属于传输层协议,在应用层如何使用传输层的服务呢?在应用层和传输层之间,则是使用套接字来进行分离。
基于TCP的Socket网络编程的主要步骤
服务器端(server):
1.构建一个ServerSocket实例,指定本地的端口。这个socket就是用来监听指定端口的连接请求的。
2.重复如下几个步骤:
a.调用socket的accept()方法来获得下面客户端的连接请求。通过accept()方法返回的socket实例,建立一个和客户端的新连接。
b.通过这个返回的socket实例获取InputStream和OutputStream,可以通过这两个stream来分别读和写数据。
c.结束的时候调用socket实例的close()方法关闭socket连接。
客户端(client):
1.构建Socket实例,通过指定的远程服务器地址和端口来建立连接。
2.通过Socket实例包含的InputStream和OutputStream来进行数据的读写。
3.操作结束后调用socket实例的close方法,关闭。
代码
服务端:
public class TCPServer {
public static void main(String[] args) throws IOException {
// 1.创建服务,指定服务端口
ServerSocket serverSocket = new ServerSocket(8081);
// 2.接受客户端的连接
Socket socket = serverSocket.accept();
System.out.println("服务端接受连接!");
// 3.发送数据
DataOutputStream dos = new DataOutputStream(new BufferedOutputStream(socket.getOutputStream()));
dos.writeUTF("你好!我是服务端!");
dos.flush();
}
}
客户端:
public class TCPClient1 {
public static void main(String[] args) throws IOException {
// 1.创建服务,指定服务端口
Socket client = new Socket("localhost",8081);
// 2.接收服务端数据
DataInputStream dis = new DataInputStream(new BufferedInputStream(client.getInputStream()));
String s = dis.readUTF();
System.out.println(s);
}
}
I/O流
(47条消息) Java中的IO流(最详细解说)~四时春~的博客-CSDN博客java中的io流
代码调试
- 输出测试
- debug
- 日志记录
\