您的位置:首页 > 理论基础 > 计算机网络

Socket通信基础——基于TCP的用户登录

2015-03-08 09:58 393 查看
服务器端:

1、创建ServerSocket对象,绑定监听端口;

ServerSocket serverSocket = new ServerSocket(5555);
2、通过accept()方法监听客户请求,等待客户端的连接;

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);
}
4、通过输出流,向客户端发送响应信息;

// 发送输出流,响应客户端信息
OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os);
pw.write("登录成功");
pw.flush();
5、关闭相关资源:输入输出流、ServerSocket等。

// 关闭相关资源
pw.close();
os.close();
br.close();
isr.close();
is.close();
socket.close();
serverSocket.close();
客户端:

1、创建Socket对象,指明需要连接的服务器地址和端口号,与服务器端建立连接;

Socket socket = new Socket("localhost", 5555);
2、建立连接以后,通过输出流,向服务器端发送请求信息;

// 获得输出流,向服务器发送信息
// 字节输出流
OutputStream os = socket.getOutputStream();
// 将字节流转为打印流
PrintWriter pw = new PrintWriter(os);
pw.write("用户名:密码");
pw.flush();
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);
}
4、关闭相关资源。

// 关闭相关资源
br.close();
isr.close();
is.close();
pw.close();
os.close();
socket.close();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: