
一个java网络编程的问题
我的代码如下:packageheh;importjava.io.BufferedReader;importjava.io.IOException;importjava.i...
我的代码如下:
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();
}
}
我先运行服务端 再运行客户端 这时候服务端会报错 求看程序什么地方错了? 展开
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();
}
}
我先运行服务端 再运行客户端 这时候服务端会报错 求看程序什么地方错了? 展开
1个回答
展开全部
socket与server建立连接 还未完成 客户端程序执行完毕 就断开了 肯定报错
你可以试试单纯的客户端只读 或者 是只写 当然服务也是这样
简单的说服务端s.getInputStream()只做这个流的操作 客户端只做s.getOutputStream()的操作 不要同时操作
当然像你的代码那样同时操作也是可以的 就是保持连接不要断开
你可以试试单纯的客户端只读 或者 是只写 当然服务也是这样
简单的说服务端s.getInputStream()只做这个流的操作 客户端只做s.getOutputStream()的操作 不要同时操作
当然像你的代码那样同时操作也是可以的 就是保持连接不要断开
追问
我弄明白了,我没有刷新流。还没把信息写出去客户端程序就结束了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询