Groovy使用 Groovy 语言开发服务器 Server 和客户端 Client 套接字程序 ( 客户端开发 )

Posted 韩曙亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Groovy使用 Groovy 语言开发服务器 Server 和客户端 Client 套接字程序 ( 客户端开发 )相关的知识,希望对你有一定的参考价值。





一、服务器端 ServerSocket 开发




1、创建服务器端套接字 ServerSocket


在客户端 , 创建 Socket 套接字 , 传入服务器端的 IP 地址 和 端口号 ;

该方法执行成功后 , 会响应触发 服务器端 ServerSocket 的 accept 方法 , 服务器端就可以得到与该 客户端 Socket 相应的连接 ;

代码示例 :

// 客户端套接字
def client = new Socket("127.0.0.1", 8088)

2、接收客户端数据线程


调用客户端 Socket 的 getInputStream 获取输入流 , 然后读取服务器端 发送给 客户端的 byte 数组数据 ;


// 接收线程 , 读取服务器端传输的内容
Thread.start 
    // 读取数据的缓冲区
    def bytes = new byte[1024]
    // 没有关闭的情况下才开始读取
    while (!client.isClosed()) 
        def len = client.inputStream.read(bytes)
        if (len > 0) 
            println "$client.remoteSocketAddress : $new String(bytes, 0, len)"
        
    


3、向服务器端发送数据线程


调用客户端 Socket 的 getOutputStream 获取输出流 , 然后写出相应 byte 数组数据到服务器端 ;

下面代码的 outputStream 就是调用了 Socket client 的 getOutputStream 获取输出流 ;

代码示例 :

// 发送线程 , 向服务器端发送数据
Thread.start 
    client.outputStream.write("Hello Server , This is Client !".getBytes())





二、客户端端 Socket 完整代码示例



// 客户端套接字
def client = new Socket("127.0.0.1", 8088)

// 接收线程 , 读取服务器端传输的内容
Thread.start 
    // 读取数据的缓冲区
    def bytes = new byte[1024]
    // 没有关闭的情况下才开始读取
    while (!client.isClosed()) 

        def len = client.inputStream.read(bytes)
        if (len > 0) 
            println "$client.remoteSocketAddress : $new String(bytes, 0, len)"
        
    


// 发送线程 , 向服务器端发送数据
Thread.start 
    client.outputStream.write("Hello Server , This is Client !".getBytes())

以上是关于Groovy使用 Groovy 语言开发服务器 Server 和客户端 Client 套接字程序 ( 客户端开发 )的主要内容,如果未能解决你的问题,请参考以下文章

Groovy开发环境

DevOps-3:Jenkins使用的Groovy语言介绍

DevOps-3:Jenkins使用的Groovy语言介绍

DevOps-3:Jenkins使用的Groovy语言介绍

GroovyGroovy 语言特点简介 ( 支持 Java 语法 | 支持 Java 虚拟机 | Groovy 语言是动态语言 | Groovy 扩展 JDK | 编译时元编程 )

GroovyGroovy 扩展方法 ( Groovy 扩展方法引入 | 分析 Groovy 中 Thread 类的 start 扩展方法 )