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

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

文章目录

一、服务器端 ServerSocket 开发

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

2、接收客户端数据线程

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

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





一、服务器端 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())
}
目录
相关文章
|
5月前
|
C# 图形学 开发者
Unity开发中使用UnityWebRequest从HTTP服务器下载资源。
总之,UnityWebRequest就是游戏开发者手中的万能钓鱼竿,既可以获取文本数据,也能钓上图片资源,甚至是那声音的涟漪。使用UnityWebRequest的时候,你需要精心准备,比如确定URL、配置请求类型和头信息;发起请求;巧妙处理钓获的数据;还需要机智面对网络波澜,处理各种可能出现的错误。按照这样的过程,数据的钓取将会是一次既轻松愉快也效率高效的编程钓鱼之旅。
235 18
|
4月前
|
Windows
Windows下版本控制器(SVN)-验证是否安装成功+配置版本库+启动服务器端程序
Windows下版本控制器(SVN)-验证是否安装成功+配置版本库+启动服务器端程序
131 2
|
5月前
|
Windows
Windows下版本控制器(SVN)-启动服务器端程序
Windows下版本控制器(SVN)-启动服务器端程序
143 4
|
7月前
|
人工智能 搜索推荐 程序员
用 Go 语言轻松构建 MCP 客户端与服务器
本文介绍了如何使用 mcp-go 构建一个完整的 MCP 应用,包括服务端和客户端两部分。 - 服务端支持注册工具(Tool)、资源(Resource)和提示词(Prompt),并可通过 stdio 或 sse 模式对外提供服务; - 客户端通过 stdio 连接服务器,支持初始化、列出服务内容、调用远程工具等操作。
1624 4
|
7月前
|
Go API 定位技术
MCP 实战:用 Go 语言开发一个查询 IP 信息的 MCP 服务器
随着 MCP 的快速普及和广泛应用,MCP 服务器也层出不穷。大多数开发者使用的 MCP 服务器开发库是官方提供的 typescript-sdk,而作为 Go 开发者,我们也可以借助优秀的第三方库去开发 MCP 服务器,例如 ThinkInAIXYZ/go-mcp。 本文将详细介绍如何在 Go 语言中使用 go-mcp 库来开发一个查询 IP 信息的 MCP 服务器。
394 0
|
8月前
|
网络协议 开发者 Python
Socket如何实现客户端和服务器间的通信
通过上述示例,展示了如何使用Python的Socket模块实现基本的客户端和服务器间的通信。Socket提供了一种简单且强大的方式来建立和管理网络连接,适用于各种网络编程应用。理解和掌握Socket编程,可以帮助开发者构建高效、稳定的网络应用程序。
354 10
|
10月前
|
存储 开发工具 git
[Git] 深入理解 Git 的客户端与服务器角色
Git 的核心设计理念是分布式,每个仓库既可以是客户端也可以是服务器。通过 GitHub 远程仓库和本地仓库的协作,Git 实现了高效的版本管理和代码协作。GitHub 作为远程裸仓库,存储项目的完整版本历史并支持多客户端协作;本地仓库则通过 `.git` 文件夹独立管理版本历史,可在离线状态下进行提交、回滚等操作,并通过 `git pull` 和 `git push` 与远程仓库同步。这种分布式特性使得 Git 在代码协作中具备强大的灵活性和可靠性。
232 18
[Git] 深入理解 Git 的客户端与服务器角色
|
10月前
|
监控 前端开发 应用服务中间件
小游戏源码开发搭建技术栈和服务器配置流程
近些年不同场景游戏层出不穷,现就小游戏开发技术应用及功能详细剖析!
|
11月前
|
存储 人工智能 自然语言处理
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
ChatMCP 是一款基于模型上下文协议(MCP)的 AI 聊天客户端,支持多语言和自动化安装。它能够与多种大型语言模型(LLM)如 OpenAI、Claude 和 OLLama 等进行交互,具备自动化安装 MCP 服务器、SSE 传输支持、自动选择服务器、聊天记录管理等功能。
2427 16
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
|
12月前
|
开发框架 .NET C#
在 ASP.NET Core 中创建 gRPC 客户端和服务器
本文介绍了如何使用 gRPC 框架搭建一个简单的“Hello World”示例。首先创建了一个名为 GrpcDemo 的解决方案,其中包含一个 gRPC 服务端项目 GrpcServer 和一个客户端项目 GrpcClient。服务端通过定义 `greeter.proto` 文件中的服务和消息类型,实现了一个简单的问候服务 `GreeterService`。客户端则通过 gRPC 客户端库连接到服务端并调用其 `SayHello` 方法,展示了 gRPC 在 C# 中的基本使用方法。
228 5
在 ASP.NET Core 中创建 gRPC 客户端和服务器

热门文章

最新文章

下一篇
开通oss服务