一个java网络编程的问题

我的代码如下:
package heh;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class MyServer {
ServerSocket ss;
Socket s;
PrintWriter pw;
InputStreamReader isr;
BufferedReader br;
public MyServer(){
try {
ss = new ServerSocket(5555);
System.out.println("服务器端正在等待连接......");
s = ss.accept();
System.out.println("连接成功!!!");
pw = new PrintWriter(s.getOutputStream(),true);
isr = new InputStreamReader(s.getInputStream());
br = new BufferedReader(isr);

String name = br.readLine();
System.out.println(name);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
public static void main(String[] args) {
new MyServer();
}
}
客户端代码:
package heh;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class MyClient {

Socket s;
PrintWriter pw;
InputStreamReader isr;
BufferedReader br;

public MyClient(){
try {
s = new Socket("127.0.0.1",5555);

pw = new PrintWriter(s.getOutputStream());
isr = new InputStreamReader(s.getInputStream());
br = new BufferedReader(isr);

pw.println("Doom");

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
public static void main(String[] args) {
new MyClient();
}
}
我先运行服务端 再运行客户端 这时候服务端会报错 求看程序什么地方错了?

socket与server建立连接 还未完成 客户端程序执行完毕 就断开了 肯定报错
你可以试试单纯的客户端只读 或者 是只写 当然服务也是这样
简单的说服务端s.getInputStream()只做这个流的操作 客户端只做s.getOutputStream()的操作 不要同时操作

当然像你的代码那样同时操作也是可以的 就是保持连接不要断开追问

我弄明白了,我没有刷新流。还没把信息写出去客户端程序就结束了

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答