在进行Java网络编程时遇到java.net.SocketException: Connection reset错误,不知道怎么解决。使用的软件是IntelliJ IDEA 2023.2 (Ultimate Edition),JDK版本是20
下面这个是服务器端的代码
package com.example.chesswithnet.demo;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class server {
public static void main(String[] args){
try {
System.out.println("服务器启动成功");
//创建服务器,并启动,给服务器绑定一个端口号
ServerSocket serverSocket=new ServerSocket(8080);
//等待服务器来连接,accept代表已成功连接上服务器的客户端socket
Socket accept= serverSocket.accept();
System.out.println(accept);
//读取客户端的信息,通过IO流,输入流进行读取
InputStream inputStream=accept.getInputStream();
byte[] bytes = inputStream.readAllBytes();
System.out.println(new String(bytes));
} catch (IOException e) {
e.printStackTrace();//打印异常信息
}
}
}
下面是客户端的代码
```java
package com.example.chesswithnet.demo;
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
public class Client {
public static void main(String[] args) {
{
try {
Socket socket = new Socket(InetAddress.getLocalHost(),8080);
//从客户端给服务端发送消息,主要通过IO流来实现
//OutputStream:输出流
OutputStream outputStream=socket.getOutputStream();
//通过write方法往流中写内容
outputStream.write("你好,服务器".getBytes());
System.out.println("信息发送成功");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
原本是想发运行结果的截图的,但是不知道怎么回事,发不了,所有只能这样发,下面就是运行后发生的错误
```java
java.net.SocketException: Connection reset
at java.base/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:313)
at java.base/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:340)
at java.base/sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:789)
at java.base/java.net.Socket$SocketInputStream.read(Socket.java:1025)
at java.base/java.io.InputStream.readNBytes(InputStream.java:409)
at java.base/java.io.InputStream.readAllBytes(InputStream.java:346)
at com.example.chesswithnet/com.example.chesswithnet.demo.server.main(server.java:19)