【发布时间】:2019-04-28 05:29:52
【问题描述】:
我在 JDeveloper 上使用 Socket Adapter 创建了一个 SOA 服务,我需要使用 Java 运行/测试它。所以我创建了一个服务器类和一个客户端类,但我得到一个错误
我对如何创建此服务并对其进行测试进行了一些研究,并在网上找到了一些有用的材料,但我遇到了一个错误,我不知道如何修复它。我对制作套接字服务器和其他东西非常陌生。
这是我的服务器类
package client;
import java.net.ServerSocket;
import java.net.Socket;
public class Class1 {
try {
ServerSocket socket = new ServerSocket(12110);
Socket s=socket.accept();
System.out.println("Connected!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
这是我的客户端类
package client;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
public class Client{
public static void main(String[] args) {
try {
Socket socket = new Socket("localhost", 12110);
OutputStream os = socket.getOutputStream();
os.write("FirstName,LastName\nWaslley,Souza\nJohn,Snow".getBytes());
os.flush();
socket.shutdownOutput();
BufferedReader soc_in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String response = soc_in.readLine();
System.out.println("Response: " + response);
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
这是我得到的错误:
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:210)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:161)
at java.io.BufferedReader.readLine(BufferedReader.java:324)
at java.io.BufferedReader.readLine(BufferedReader.java:389)
at client.Client.main(Client.java:23)
【问题讨论】:
-
这是一个应用程序协议错误,这种情况经常发生。仅仅接受一个连接然后退出势必会让客户感到不安。你的客户正在发送一些东西。服务器需要读取它。你的客户正在阅读一些东西。服务器需要发送它。
标签: java sockets exception serversocket