按照視頻TCP那章的前三節(jié)寫的程序,服務器端接受不了客戶端發(fā)來的數(shù)據?
//服務器端的程序
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
?? ?public static void main(String[] args) {
?? ??? ?try {
?? ??? ??? ?ServerSocket server =new ServerSocket(9887);
?? ??? ??? ?while(true)
?? ??? ??? ?{
?? ??? ??? ?Socket socket =server.accept();
?? ??? ??? ?InputStream it =socket.getInputStream();
?? ??? ??? ?InputStreamReader its=new InputStreamReader(it);
?? ??? ??? ?BufferedReader br=new BufferedReader(its);
?? ??? ??? ?System.out.println("我是服務器 ,等待客戶端輸入數(shù)據");
?? ??? ??? ?String info =null;
?? ??? ??? ?while((info=br.readLine())!=null)
?? ??? ??? ?{
?? ??? ??? ??? ?System.out.println(info);
?? ??? ??? ??? ?info=br.readLine();
?? ??? ??? ?}
?? ??? ??? ?socket.shutdownInput();
?? ??? ??? ?br.close();
?? ??? ??? ?its.close();
?? ??? ??? ?it.close();
?? ??? ??? ?socket.close();
?? ??? ??? ?server.close();
?? ??? ??? ?}
?? ??? ??? ?
?? ??? ?} catch (IOException e) {
?? ??? ??? ?
?? ??? ??? ?e.printStackTrace();
?? ??? ?}
?? ?}
}
//客戶端的程序
import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
?? ?public static void main(String[] args) {
?? ??? ?
?? ??? ?try {
?? ??? ??? ?Socket socket =new Socket("localhost",9887);
?? ??? ??? ?OutputStream os =socket.getOutputStream();
?? ??? ??? ?
?? ??? ??? ?PrintWriter pw=new PrintWriter(os);
?? ??? ??? ?pw.write("用戶名");
?? ??? ??? ?pw.flush();
?? ??? ??? ?socket.shutdownOutput();
?? ??? ??? ?pw.close();
?? ??? ??? ?os.close();
?? ??? ??? ?
?? ??? ??? ?socket.close();
?? ??? ??? ?
?? ??? ?} catch (UnknownHostException e) {
?? ??? ??? ?// TODO Auto-generated catch block
?? ??? ??? ?e.printStackTrace();
?? ??? ?} catch (IOException e) {
?? ??? ??? ?// TODO Auto-generated catch block
?? ??? ??? ?e.printStackTrace();
?? ??? ?}
?? ??? ?
?? ?}
}
2016-06-22
將客戶端的?pw.write("用戶名");
改為?pw.println("用戶名"); 就可以了,不知道為什么,求小伙伴一起討論