作者:手机用户2502885997 | 来源:互联网 | 2023-06-17 11:10
文章目录一、服务器端完整代码Server.groovy二、客户端完整代码Client.groovy三、运行服务器端与客户端效果及过程分析一、服务器端完整代码Server.groov
文章目录
- 一、服务器端完整代码 Server.groovy
- 二、客户端完整代码 Client.groovy
- 三、运行服务器端与客户端效果及过程分析
一、服务器端完整代码 Server.groovy
参考 【Groovy】使用 Groovy 语言开发服务器 Server 和客户端 Client 套接字程序 ( 服务器端开发 ) 博客 ;
def serverSocket = new ServerSocket(8088)
def sockets = []
def isQuit = false;
Thread.start {while (!isQuit) {def socket &#61; serverSocket.accept()sockets << socketThread.start {def bytes &#61; new byte[1024]while (!socket.isClosed()) {def len &#61; socket.inputStream.read(bytes)if (len > 0) {println "${socket.remoteSocketAddress} : ${new String(bytes, 0, len)}"}socket.outputStream.write("Hello Client, this is Server !".getBytes())}}}if (!serverSocket.isClosed()) {serverSocket.close();}sockets.each {it.close()}
}
def scanner &#61; new Scanner(System.in)
Thread.start {while (!isQuit) {def inputString &#61; scanner.nextLine()if (inputString &#61;&#61; "quit") {isQuit &#61; trueif (!serverSocket.isClosed()) {serverSocket.close();}sockets.each {it.close()}}sockets*.outputStream*.write(inputString.getBytes())}
}
二、客户端完整代码 Client.groovy
参考 【Groovy】使用 Groovy 语言开发服务器 Server 和客户端 Client 套接字程序 ( 客户端开发 ) 博客 ;
def client &#61; new Socket("127.0.0.1", 8088)
Thread.start {def bytes &#61; new byte[1024]while (!client.isClosed()) {def len &#61; 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())
}
三、运行服务器端与客户端效果及过程分析
先运行服务器端 , 服务器端 ServerSocket 创建 , 并开始监听 8088 端口 ;
然后运行客户端 , 客户端会自动向服务器端发送
"Hello Server , This is Client !"
字符串数据 , 服务器端接收到数据后 , 在服务器端命令行打印该数据 , 并向客户端发送
"Hello Client, this is Server !"
字符串换数据 , 客户端接收到该数据后 , 在命令行中打印该字符串 ;
服务器端打印的内容 :
客户端打印的内容 :
服务器端输入 123
字符串 ,
客户端会打印出该数据 :