问答详情
源自:3-4 完善用户登陆之服务器响应客户端

我按照视频中一模一样打的代码为什么服务器端运行了,客户端运行时什么东西都没有输出

我按照视频中一模一样打的代码为什么服务器端运行了,客户端运行时什么东西都没有输出

提问者:酒唸 2016-08-02 21:35

个回答

  • 进步中的编程猿
    2016-12-12 23:16:19

    pw.flush();//刷新缓存

    pw.close();

    os.close();

    socket.shutdownInput();

    br.close();


    is.close();

    socket.close();

    这个是客户端的  其中  socket.shutdownInput     应该改为socket.shutdonwnOutput       

    因为上面是接收了 输出流  所以是要关闭输出流   



    再有是你的客户端的地方  有同样的问题     把socket.shutdownOutput   改为socket.shutdownInput    


    System.out.println("我是客户端,服务器说"+info);

    info = br.readLine();

    }

    pw.flush();

    socket.shutdownOutput();

    pw.close();


  • 酒唸
    2016-08-03 19:36:05

    package com.imooc;


    import java.io.BufferedReader;

    import java.io.IOException;

    import java.io.InputStream;

    import java.io.InputStreamReader;

    import java.io.OutputStream;

    import java.io.PrintWriter;

    import java.net.ServerSocket;

    import java.net.Socket;


    /**

     * 

     * 服务器

     *

     */

    public class Serve {

    public static void main(String[] args) {

    //1.创建一个服务器socket

    try {

    ServerSocket serversocket =new ServerSocket(8888);

    //2.调用accept方法开始监听,等待客户端的链接

    System.out.println("****服务器即将启动,等待客户端的链接****");

    Socket socket =serversocket.accept();

    //3.获取输入流,并读取客户端信息

    InputStream is=socket.getInputStream();


    BufferedReader br=new BufferedReader(new InputStreamReader(is));

    String info =null;

    while ((info =br.readLine())!=null)

    {

    System.out.println("我是服务器,客户端说"+info);

    info = br.readLine();

    }

    OutputStream os=socket.getOutputStream();

    PrintWriter  pw=new PrintWriter(os);

    pw.write("welcome!");

    pw.flush();//刷新缓存

    pw.close();

    os.close();

    socket.shutdownInput();

    br.close();

    is.close();

    socket.close();

    serversocket.close();


    } catch (IOException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }//>1023

    }


    }

    这是服务器端的 


    package com.imooc;


    import java.io.BufferedReader;

    import java.io.IOException;

    import java.io.InputStream;

    import java.io.InputStreamReader;

    import java.io.OutputStream;

    import java.io.PrintWriter;

    import java.net.Socket;

    import java.net.UnknownHostException;




    /**

     * 

     * 客户端

     *

     */

    public class Client {

    public static void main(String[] args) {

    try {

    Socket socket =new Socket("localhost",8888);

    //2.获取输出流,向服务器端发送信息

    OutputStream os=socket.getOutputStream();

    PrintWriter  pw=new PrintWriter(os);

    pw.write("用户名:admin;密码:123");

    InputStream is=socket.getInputStream();

    BufferedReader br=new BufferedReader(new InputStreamReader(is));

    String info =null;

    while ((info =br.readLine())!=null)

    {

    System.out.println("我是客户端,服务器说"+info);

    info = br.readLine();

    }

    pw.flush();

    socket.shutdownOutput();

    pw.close();

    os.close();

    socket.close();

    br.close();


    is.close();

    } catch (UnknownHostException e) {

    e.printStackTrace();

    } catch (IOException e) {


    e.printStackTrace();

    }

    }


    }

    这是客户端 


  • 飞翔32993
    2016-08-03 09:21:22

    你的把你的代码贴出来,大家才能帮你解决啊