先谢谢大家的帮助客户端代码:
import java.io.*;
import java.net.*;public class Client{
Socket socket;
BufferedReader in;
PrintWriter out;
public Client(){
try{
socket = new Socket("127.0.0.1", 6666);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
PrintWriter bw=new PrintWriter(socket.getOutputStream());
String s=reader.readLine();
while(s!="bye"){
bw.println(s);
//bw.write(s);
System.out.println(s);
System.out.println(in.readLine());
s=reader.readLine();
}
out.close();
in.close();
socket.close();
}catch (IOException e){}
}
public static void main(String[] args){
new Client();
}
}
服务器端
import java.net.*;
import java.io.*;public class Server
{
public Server(){
try{
ServerSocket ss = new ServerSocket(6666);
while (true){
Socket socket = ss.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream());
BufferedReader bd=new BufferedReader(new InputStreamReader(System.in));
String line = bd.readLine();
System.out.println("Client:" + in.readLine());
while(line!="bye"){
out.println(line);
out.flush();
System.out.println("Cilnt input:"+in.readLine());
System.out.println("You input:"+line);
line=bd.readLine();
}
out.close();
in.close();
socket.close();
ss.close();
}
//ss.close();
}catch (IOException e){}
}
public static void main(String[] args){
new Server();
}
}
我想客户端写入后,然后客户端和服务器端都显示输入的内容,然后服务器端输入,在客户端和服务器端都显示输入的内容,但是现在客户端输入后,在客户端显示,但是服务器端没有反应?
import java.io.*;
import java.net.*;public class Client{
Socket socket;
BufferedReader in;
PrintWriter out;
public Client(){
try{
socket = new Socket("127.0.0.1", 6666);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
PrintWriter bw=new PrintWriter(socket.getOutputStream());
String s=reader.readLine();
while(s!="bye"){
bw.println(s);
//bw.write(s);
System.out.println(s);
System.out.println(in.readLine());
s=reader.readLine();
}
out.close();
in.close();
socket.close();
}catch (IOException e){}
}
public static void main(String[] args){
new Client();
}
}
服务器端
import java.net.*;
import java.io.*;public class Server
{
public Server(){
try{
ServerSocket ss = new ServerSocket(6666);
while (true){
Socket socket = ss.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream());
BufferedReader bd=new BufferedReader(new InputStreamReader(System.in));
String line = bd.readLine();
System.out.println("Client:" + in.readLine());
while(line!="bye"){
out.println(line);
out.flush();
System.out.println("Cilnt input:"+in.readLine());
System.out.println("You input:"+line);
line=bd.readLine();
}
out.close();
in.close();
socket.close();
ss.close();
}
//ss.close();
}catch (IOException e){}
}
public static void main(String[] args){
new Server();
}
}
我想客户端写入后,然后客户端和服务器端都显示输入的内容,然后服务器端输入,在客户端和服务器端都显示输入的内容,但是现在客户端输入后,在客户端显示,但是服务器端没有反应?
客户端:import java.io.*;
import java.net.*;public class Client{
Socket socket;
BufferedReader in;
BufferedReader reader;
PrintWriter out;
public Client(){
try{
socket = new Socket("127.0.0.1", 6666);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
reader=new BufferedReader(new InputStreamReader(System.in));
out=new PrintWriter(socket.getOutputStream());
String s=reader.readLine();
while(!s.equals("bye")){
out.println(s);
out.flush();
System.out.println(s);
System.out.println(in.readLine());
s=reader.readLine();
}
out.println("bye");
reader.close();
out.close();
in.close();
socket.close();
}catch (IOException e){}
}
public static void main(String[] args){
new Client();
}
}服务端:import java.net.*;
import java.io.*;public class Server
{
public Server(){
try{
ServerSocket ss = new ServerSocket(6666);
while (true){
Socket socket = ss.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream());
BufferedReader bd=new BufferedReader(new InputStreamReader(System.in));
String line = in.readLine();
System.out.println("Client:" + line);
while(!line.equals("bye")){
String input=bd.readLine();
System.out.println("You input:"+input);
out.println(input);
out.flush();
line=in.readLine();
System.out.println("Cilnt input:"+line);
}
out.close();
in.close();
socket.close();
ss.close();
}
//ss.close();
}catch (IOException e){}
}
public static void main(String[] args){
new Server();
}
}
你客户端输入后,在客户端显示,但是服务器端没有反应?
知道为什么服务器没反应吗?服务器运行到这块停了,如下:
BufferedReader bd=new BufferedReader(new InputStreamReader(System.in));
String line = bd.readLine();等着你服务器输入后,它才会接着向下运行,之后你客户端输入的内容才会在服务器上有显示。
代码结构组织的很怪啊。。
String line = bd.readLine();
这里一直等待输入的。