为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

正在回答

3 回答

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();


0 回复 有任何疑惑可以回复我~

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();

}

}


}

这是客户端 


0 回复 有任何疑惑可以回复我~
#1

moluchase

在每次获取socket的流之前,先关闭使用的流,你试试看 比如服务器程序中这行OutputStream os=socket.getOutputStream();前面加上socket.shutdownInput();
2016-08-06 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信