SocketService.java

package socket;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;public class SocketService {//搭建服务器端public static void main(String[] args) throws IOException{SocketService socketService = new SocketService();//1、a)创建一个服务器端Socket,即SocketService
        socketService.oneServer();}public  void oneServer(){try{ServerSocket server=null;try{server=new ServerSocket(5209);//b)指定绑定的端口,并监听此端口。System.out.println("服务器启动成功");//创建一个ServerSocket在端口5209监听客户请求}catch(Exception e) {System.out.println("没有启动监听:"+e);//出错,打印出错信息
            }Socket socket=null;try{socket=server.accept();//2、调用accept()方法开始监听,等待客户端的连接 //使用accept()阻塞等待客户请求,有客户//请求到来则产生一个Socket对象,并继续执行}catch(Exception e) {System.out.println("Error."+e);//出错,打印出错信息
            }//3、获取输入流,并读取客户端信息
            String line;BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));//由Socket对象得到输入流,并构造相应的BufferedReader对象PrintWriter writer=new PrintWriter(socket.getOutputStream());//由Socket对象得到输出流,并构造PrintWriter对象BufferedReader br=new BufferedReader(new InputStreamReader(System.in));//由系统标准输入设备构造BufferedReader对象System.out.println("Client:"+in.readLine());//在标准输出上打印从客户端读入的字符串line=in.readLine();
//            line=br.readLine();//从标准输入读入一字符串//4、获取输出流,响应客户端的请求 while(!line.equals("end")){//如果该字符串为 "bye",则停止循环//              writer.println(line);//向客户端输出该字符串//               writer.flush();//刷新输出流,使Client马上收到该字符串//               System.out.println("Server:"+line);//在系统标准输出上打印读入的字符串System.out.println("Client:"+in.readLine());//从Client读入一字符串,并打印到标准输出上//            line=br.readLine();//从系统标准输入读入一字符串} //继续循环//5、关闭资源 writer.close(); //关闭Socket输出流in.close(); //关闭Socket输入流socket.close(); //关闭Socketserver.close(); //关闭ServerSocket}catch(Exception e) {//出错,打印出错信息System.out.println("Error."+e);}}
}

SocketClient.java

package socket;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.URL;public class SocketClient {// 搭建客户端public static void main(String[] args) throws IOException {try {// 1、创建客户端Socket,指定服务器地址和端口// Socket socket=new Socket("127.0.0.1",5200);Socket socket = new Socket("127.0.0.1", 5209);System.out.println("客户端启动成功");// 2、获取输出流,向服务器端发送信息// 向本机的52000端口发出客户请求BufferedReader br = new BufferedReader(new InputStreamReader(System.in));// 由系统标准输入设备构造BufferedReader对象PrintWriter write = new PrintWriter(socket.getOutputStream());// 由Socket对象得到输出流,并构造PrintWriter对象//3、获取输入流,并读取服务器端的响应信息 //        BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));// 由Socket对象得到输入流,并构造相应的BufferedReader对象
            String readline;readline = br.readLine(); // 从系统标准输入读入一字符串while (!readline.equals("end")) {// 若从标准输入读入的字符串为 "end"则停止循环
                write.println(readline);// 将从系统标准输入读入的字符串输出到Server
                write.flush();// 刷新输出流,使Server马上收到该字符串System.out.println("Client:" + readline);// 在系统标准输出上打印读入的字符串//              System.out.println("Server:" + in.readLine());// 从Server读入一字符串,并打印到标准输出上readline = br.readLine(); // 从系统标准输入读入一字符串} // 继续循环//4、关闭资源 write.close(); // 关闭Socket输出流//          in.close(); // 关闭Socket输入流socket.close(); // 关闭Socket} catch (Exception e) {System.out.println("can not listen to:" + e);// 出错,打印出错信息
        }}}

实现Java Socket 客户端服务端交互实例相关推荐

  1. 客户端服务端交互实现

    问题 客户端业务逻辑如何实现? 与服务设备具体交互细节如何设计? 客户端业务逻辑实现 用户输入处理 字符串空格处理,分割获取命令与参数 服务信息处理 字符串预处理,分割获取服务命令 存储服务命令与设备 ...

  2. Java socket服务端

    本文主要讲解java socket服务端通信内容,服务端监听客户端,并且获取客户端的消息. 监听的主要代码是一个while死循环,因为需要实现持续监听.读者可重点阅读MySocketServer 类的 ...

  3. java jqgrid_jqgrid 前后端交互实例

    原标题:jqgrid 前后端交互实例 首先,jqGrid 是一个用来显示网格数据的jQuery插件,通过使用jqGrid可以轻松实现前端页面与后台数据的ajax异步通信. 一.jqGrid特性 基于j ...

  4. JAVA SOCKET 服务端/客户端可随时从任意一方发消息的例子

    网上找到不少例子都是必须客户端先发送一个消息,服务端再回复一条消息.这样的方式对于服务端想主动发送消息给客户端就很不方便了. 研究了一下,发现主要是因为BufferedReader的时候用readli ...

  5. java与c++ socket通信_C++ socket 客户端与JAVA socket 服务端通信汗血宝马

    C++ socket 连接java 服务如果发送 packHeadLength+消息体 java 客户端代码 Socket socket = new Socket("127.0.0.1&qu ...

  6. HBase总结(十二)Java API 与HBase交互实例

    HBase提供了Java Api的访问接口,掌握这个就跟Java应用使用RDBMS时需要JDBC一样重要 [html] view plaincopy import java.io.IOExceptio ...

  7. 【Java】GUI界面聊天小程序(基于Socket的客户端服务端通信)

    基于Socket的客户端服务端通信--Java GUI界面小程序 Socket概念及其通信过程: Socket是TCP/IP中的基本概念,它负责将TCP/IP包发送到指定的IP地址.也可以看成是在两个 ...

  8. java socket同步通信,javasocket客户端与服务端同步通信实例

    javasocket客户端与服务端同步通信实例 工作中没涉及有关JA V A SOCKET编程的实际经历,但理论大概了解.想正明一下自已的对JA V A SOCKET理解写个通信TEST,通过TEST ...

  9. Java Socket实现客户端服务端之间的通信

    Java Socket Java Socket编程用于在不同JRE上运行的应用程序之间的通信. Java Socket编程可以是面向连接的或无连接的. Socket和ServerSocket类用于面向 ...

最新文章

  1. matlab apfc,APFC-Boost 带APFC的Boost升压变换器在Matlab中的仿真实现 - 下载 - 搜珍网...
  2. Pyinstaller将Python程序打包成EXE(多种模式的打包)
  3. 2019ICPC(银川) - Function!(数论+数学分块)
  4. 是否使用有硼砂的眼用品
  5. LuoGu P2002 消息扩散
  6. 分布式精华问答:分布式环境下如何保持数据一致性的?| 技术头条
  7. java 对象 转换 工具类_Java中excel与对象的互相转换的通用工具类编写与使用(基于apache-poi-ooxml)...
  8. 怎么用python统计字数_Python 统计字数的思路详解
  9. python 如何获取文件夹下所有的目录。
  10. 实验、配置Eigrp 验证,汇总
  11. 3GPP TS 23502-h20 中英文对照 | 4.15.6.2 NEF service operations information flow
  12. 我们的青春已落幕,用 Python 分析韦德职业生涯数据
  13. 笔记本方向键和HOME END 键是 同一个按钮,怎么使用?
  14. 前端推荐的书籍学习(必看)
  15. 笔记本电脑怎样重装系统
  16. Matlab的一些术语
  17. Arduino WIFI智能小车 无线视频遥控小车 课程设计
  18. mysql查询数据库中所有字段的属性
  19. %在c语言中起什么作用
  20. 东信EST-100系列身份证读卡器安卓开发包,Android Studio环境编译

热门文章

  1. 五、单向环形链表---实现约瑟夫(Josephu)问题
  2. python文件打包成exe可执行文件
  3. ClickHouse系列教程四:允许远程连接 allow remote access
  4. python操作MariaDB
  5. 绝地求生现在服务器稳定吗,吃鸡服务器不稳定?《绝地求生》国服宣布将首次使用超性能服务器...
  6. 如何保证消息的顺序性
  7. ThreadPoolExecutor(线程池)的参数
  8. 阿里开源的缓存框架JetCache,实现spring二级缓存
  9. WKWebView 那些坑
  10. matlab定子磁链观测器,一种基于二阶广义积分器的永磁同步电机定子磁链观测方法...