客户端package server;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.InetAddress;
import java.net.Socket;public class Lesson10client{
public static void main(String args[]){
client();
}
public static void client(){

try{
Socket s = new Socket("127.0.0.1",1999);
InputStream ips = s.getInputStream();
InputStreamReader ipsr = new InputStreamReader(ips);
BufferedReader br = new BufferedReader(ipsr);

String strline = br.readLine();
if(strline !="")
System.out.println(strline);
OutputStream ops = s.getOutputStream();
OutputStreamWriter opsw = new OutputStreamWriter(ops);
BufferedWriter bw = new BufferedWriter(opsw);
bw.write("this is kiss wen");
bw.flush();

s.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}
服务端:package server;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;public class Lesson10 extends Thread{
private Socket s;
public Lesson10(Socket s){
this.s = s;
}
public void run(){
try {
OutputStream ops = s.getOutputStream();
OutputStreamWriter opsw = new OutputStreamWriter(ops);
BufferedWriter bw = new BufferedWriter(opsw);
bw.write("hello,welcome you!");
bw.flush();

InputStream ips = s.getInputStream();
InputStreamReader ipsr = new InputStreamReader(ips);
BufferedReader br = new BufferedReader(ipsr);
String str = br.readLine();
if(str != "")
System.out.println(str);
s.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String args[]){
server();
}
public static void server(){
System.out.println("ser");
try{
ServerSocket ss = new ServerSocket(1999);
while(true){
Socket s = ss.accept();
new Lesson10(s).start();
}
//ss.close();
}
catch (Exception e){
e.printStackTrace();
}
}


}为什么就是不能传输???

解决方案 »

  1.   

    因为你用了BufferedReader的readLine方法,该方法要读一行才结束,也就是说,数据后面还要有一个换行符,这样才能读到数据,并往下执行,否则一直处于阻塞状态。所以在程序中的两个地方修改:bw.write("hello,welcome you!\n");//Lesson10的这句,后面加个换行符
    bw.write("this is kiss wen\n");//Lesson10client的这句后面加上换行符