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

举报
韩曙亮 发表于 2022/01/11 00:24:28 2022/01/11
【摘要】 文章目录 一、服务器端 ServerSocket 开发1、创建服务器端套接字 ServerSocket2、接收客户端数据线程3、向服务器端发送数据线程 二、客户端端 Socket 完整代码示例...





一、服务器端 ServerSocket 开发




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


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

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

代码示例 :

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

  
 
  • 1
  • 2

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)}"
        }
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

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


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

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

代码示例 :

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

  
 
  • 1
  • 2
  • 3
  • 4




二、客户端端 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())
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

文章来源: hanshuliang.blog.csdn.net,作者:韩曙亮,版权归原作者所有,如需转载,请联系作者。

原文链接:hanshuliang.blog.csdn.net/article/details/122394014

推荐

华为开发者空间发布

让每位开发者拥有一台云主机

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。