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

来源:互联网 发布:淘宝客服能在家里做吗 编辑:程序博客网 时间:2024/06/01 16:56

服务器端:

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



0 0