服务端代码:
public class SimpleServerSocket {
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(9809);
Socket client = server.accept();
BufferedReader reader = new BufferedReader(new InputStreamReader(client
.getInputStream()));
while (true) {
String recStr = reader.readLine();
System.out.println(recStr);
if ("End".equals(recStr))
break;
}
client.close();
System.out.println("Terminate...");
}
}
客户端代码:
public class SimpleSocket {
public static void main(String[] args) throws UnknownHostException, IOException {
Socket client = new Socket(InetAddress.getLocalHost(),9809);
PrintWriter out = new PrintWriter(client.getOutputStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
while(true){
String inputStr = reader.readLine();
out.print(inputStr);
out.flush();
if("End".equals(inputStr))
break;
}
client.close();
}}
为什么就不行?输入以后服务端不打印,输入多次再输入End就出现很多null,只有第一次就输入End的时候反映正常。
郁闷。。
public class SimpleServerSocket {
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(9809);
Socket client = server.accept();
BufferedReader reader = new BufferedReader(new InputStreamReader(client
.getInputStream()));
while (true) {
String recStr = reader.readLine();
System.out.println(recStr);
if ("End".equals(recStr))
break;
}
client.close();
System.out.println("Terminate...");
}
}
客户端代码:
public class SimpleSocket {
public static void main(String[] args) throws UnknownHostException, IOException {
Socket client = new Socket(InetAddress.getLocalHost(),9809);
PrintWriter out = new PrintWriter(client.getOutputStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
while(true){
String inputStr = reader.readLine();
out.print(inputStr);
out.flush();
if("End".equals(inputStr))
break;
}
client.close();
}}
为什么就不行?输入以后服务端不打印,输入多次再输入End就出现很多null,只有第一次就输入End的时候反映正常。
郁闷。。
-------------------------------------------------------------------
服务器:
BufferedReader reader = new BufferedReader(new InputStreamReader(client
.getInputStream()));
while (true) {
String recStr = reader.readLine(); // 也在等
System.out.println(recStr);
if ("End".equals(recStr))
break;
} // 有连接进来, 服务器没有主动发过一句话, 只是在等待客户端发消息过来.------------------------------------------------------------------
客户端:
PrintWriter out = new PrintWriter(client.getOutputStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
while(true){
String inputStr = reader.readLine(); // 一直在等.
out.print(inputStr);
out.flush(); if("End".equals(inputStr))
break;
} // 连接后, 就等待服务器发消息过来, 也没有主动发过消息.------------------------------------------------------------------
都没有发过消息, 谁都没有发过消息, 都在等对方发, 当然有问题.
public static void main(String[] args) throws UnknownHostException, IOException {
Socket client = new Socket(InetAddress.getLocalHost(),9809);
PrintWriter out = new PrintWriter(client.getOutputStream());
BufferedReader reader;
while(true){
reader = new BufferedReader(new InputStreamReader(System.in));
String inputStr = reader.readLine();
out.print(inputStr);
out.flush(); if("End".equals(inputStr))
break;
}
client.close();
} }
客户端改成这样试试!
弄了这么久。哭~还是谢谢两位高手的解答,我这代码貌似漏洞很多还望高手们指导。