博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
模拟客户端登陆(基于TCP的Socket编程)
阅读量:5877 次
发布时间:2019-06-19

本文共 2505 字,大约阅读时间需要 8 分钟。

hot3.png

1、客户端

 package com.ljb.app.socket;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;/** * 客户端(模拟客户登陆并接收服务端响应信息) * @author LJB * @version 2015年3月11日 */public class LoginClient { /**  * @param args  */ public static void main(String[] args) {  try {   // 建立客户端Socket连接,指定服务器的位置以及端口   Socket socket = new Socket("localhost",8800);      // 得到Socket的读写流   OutputStream os = socket.getOutputStream();   PrintWriter pw = new PrintWriter(os);      // 获取输入流   InputStream is = socket.getInputStream();   BufferedReader br = new BufferedReader(new InputStreamReader(is));      // 进行写操作   String info = "用户名:Tom,密码:123456";   pw.write(info);   pw.flush();   socket.shutdownOutput();      // 接收服务端响应   String reply = null;   while (!((reply = br.readLine()) == null)) {    System.out.println("我是客户端,服务端响应是:" + reply);   }      // 关闭流   br.close();   is.close();   pw.close();   os.close();   socket.close();  } catch (UnknownHostException e) {   e.printStackTrace();  } catch (IOException e) {   e.printStackTrace();  } }}

2、服务端

 package com.ljb.app.socket;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;/** * 服务端(接收客户端登陆信息并给出响应) * @author LJB * @version 2015年3月11日 */public class LoginServer { /**  * @param args  */ public static void main(String[] args) {   try {   // 建立一个服务器绑定指定端口Socket(ServerSocket)并开始监听   ServerSocket serverSocket = new ServerSocket(8800);      // 使用accept()方法阻塞等待监听,获得新的连接   Socket socket = serverSocket.accept();      // 获得输入流   InputStream is = socket.getInputStream();   BufferedReader br = new BufferedReader(new InputStreamReader(is));      // 获得输出流   OutputStream os = socket.getOutputStream();   PrintWriter pw = new PrintWriter(os);      // 读取用户输入信息   String info = null;   while (!((info = br.readLine()) == null)) {    System.out.println("我是服务器,用户信息为:" + info);   }      // 响应信息   String reply = "welcome";   pw.write(reply);   pw.flush();      // 关闭流   pw.close();   os.close();   br.close();   is.close();   socket.close();   serverSocket.close();  } catch (IOException e) {   e.printStackTrace();  }  }}

运行结果:

    客户端:

                我是客户端,服务端响应是:welcome

    服务端:

                我是服务器,用户信息为:用户名:Tom,密码:123456

转载于:https://my.oschina.net/u/2320342/blog/385715

你可能感兴趣的文章
一分钟带你走进大数据行业!2019年进军大数据我们要做些什么?
查看>>
开源存储
查看>>
用shell脚本实现防DOS***-网络连接法
查看>>
2950交换机 简明配置维护手册
查看>>
我的友情链接
查看>>
PowerDesigner 15.2对Oracle进行反向工程
查看>>
myisam 和 innodb的区别
查看>>
自动切换的JS菜单
查看>>
Entity Framework 4 in Action读书笔记——第五章:域模型映射(Domain model mapping)(三)...
查看>>
CAD Image DLL免费下载使用说明
查看>>
AngularJS 指令
查看>>
ng-controller指令
查看>>
【Java例题】5.2 数组转换
查看>>
Snacks
查看>>
Java学习笔记(三)Java2D组件
查看>>
关于Servlet的getInitParameter的使用
查看>>
在线思维导图
查看>>
Debian 7 的内核 3.2 升级到3.16
查看>>
MySQL数据类型和常用字段属性总结
查看>>
MongoDB的存储结构及对空间使用率的影响
查看>>