0717-Java I/O与网络编程

77 阅读2分钟

Java 序列化

Java 序列化 | 菜鸟教程 (runoob.com)

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
  • 日志记录

\