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

跟着做的,可是有错误,关于socket,,,

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;


/*

 * 基于TCP协议的Socket通信,实现用户登录         

 * 服务器端

 */

public class Server {

public static void main(String[] args) {

try {//1.创建一个服务器端Socket,即ServerSocket,指定绑定的端口,并监听此端口

ServerSocket serverSocket=new ServerSocket(8888);

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

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

Socket socket=serverSocket.accept();

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

InputStream is=socket.getInputStream();//字节输入流

InputStreamReader isr=new InputStreamReader(is);//将字节流转换为字符流

BufferedReader br=new BufferedReader(isr);//为字符流添加缓冲

String info=null;

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

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

}

socket.shutdownInput();//关闭输入流

//4.获取输出流,响应客户端的请求

OutputStream os=socket.getOutputStream();

PrintWriter pw=new PrintWriter(os);//包装为打印流

pw.write("欢迎您!");//响应客户端

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

//5.关闭资源

pw.close();

os.close();

is.close();

isr.close();

br.close();

serverSocket.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}





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 {

//1.创建客户端Socket,指定地址和服务器端口

Socket socket;

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

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

OutputStream os= socket.getOutputStream();

//字节输出流

PrintWriter pw=new PrintWriter(os);//将输出流转换为打印流

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

socket.shutdownOutput();//关闭输出流,写入的数据将被发送

//3.获取输入流,并获取服务器端的响应信息

InputStream is=socket.getInputStream();

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

String info=null;

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

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

}

//4.关闭资源

os.close();

pw.close();

socket.close();

} catch (UnknownHostException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

http://img1.sycdn.imooc.com//56d2e97e000112cf07090334.jpg

正在回答

1 回答

是不是先启动了客户端。客户端的socket声明的时候初始化为null试试

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

啊梨真神奇 提问者

并不是哦~启动服务器端,再启动客户端,客户端的socket初始化为null还是木有用哦~~
2016-02-29 回复 有任何疑惑可以回复我~
#2

zhangdi0534 回复 啊梨真神奇 提问者

是不是电脑弹出来请求页面,你给拒绝了?
2016-03-10 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

跟着做的,可是有错误,关于socket,,,

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