package server;
import java.io.*;
import java.io.IOException;
import java.net.*;
class Server {
public static void main(String[] args) {
try {
ServerSocket ss=new ServerSocket(8888);
Socket s1=ss.accept();
System.out.println("Client conneted!");
BufferedReader br=new BufferedReader(
new InputStreamReader(s1.getInputStream()));
System.out.println(br.readLine());
} catch (IOException e) {
e.printStackTrace();
}
}
}
package client;
import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
public static void main(String[] args) {
try {
Socket s=new Socket("127.0.0.1",8888);
BufferedWriter br=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
BufferedReader br1=new BufferedReader(
new InputStreamReader(System.in));
String str=br1.readLine();
br.write(str);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
以上一个client 一个server 功能就是两者连接后从client那里输入一个字符串然后再server那里输出
但是当我在client处输入一个字符串并按回车后这样报错
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at server.Server.main(Server.java:15)
中间哪里出问题了呢? 大神何在?
客户端连上去发个东西就结束了等服务器读的时候连接都已经断了
那我在客户端写个循环不断阻塞等待试一下你觉得如何?架子线程上。server 设置成while(true)循环。。client:
while(true){
Stringstr=<spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;line-height:21.988636016845703px;background-color:#FFFFFF;">br.readLine();
out.println(str);
out.flush();
if(str.equals("end")){
break;
}
System.out.println(in.readLine());
}
server:
while(true){
Stringstr=in.readLine();
System.out.println(str);
out.println("hasreceive....");
out.flush();
if(str.equals("end"))
break;
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。