服务器端
package 手写服务器一;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
private ServerSocket server;
public static void main(String[] args) {
Server s=new Server();
s.start();
}
//创建客户端
private void start(){
try {
server=new ServerSocket(9999);
this.receive();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//接收数据
private void receive(){
try {
Socket socket=server.accept();
StringBuilder msg=new StringBuilder();
String str=null;
BufferedReader reader=new BufferedReader(
new InputStreamReader(socket.getInputStream()));
while((str=reader.readLine()).length()>0)
{
msg.append(str);
msg.append("\r\n");
}
System.out.println(msg.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
客户端
package 客户端;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.InetAddress;
import java.net.Socket;
public class Client {
public static void main(String[] args) throws IOException{
@SuppressWarnings("resource")
Socket socket=new Socket(InetAddress.getLocalHost(),9999);
BufferedWriter writer=new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream()));
writer.write("我是");
writer.newLine();
writer.flush();
}
}
报的错为:
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at 手写服务器一.Server.receive(Server.java:34)
at 手写服务器一.Server.start(Server.java:20)
at 手写服务器一.Server.main(Server.java:14)
在服务器端的接收数据的while那里会出错,这是为什么呢,又应该怎么改进呢,使
服务器可以循环接收,但是但我用浏览器访问服务器端时确不会出错,求大神解答。
主要问一下为什么会出这样的错,改进可以次要。