提问人:Flint_wasd 提问时间:9/10/2022 更新时间:9/10/2022 访问量:104
Julia 和 Groovy 之间使用套接字进行数据交换
data exchange using socket between Julia and Groovy
问:
最近,我正在尝试使用套接字在 Julia 中的求解器(作为服务器)和 Groovy 中的客户端之间交换数据。我对套接字概念和语言都很陌生。问题是,一旦 julia 服务器完成“readLine()”,套接字就会关闭并且“write()”无法继续。我无法向 Groovy 客户端发送消息,也无法交换数据。
服务器代码(Julia):
using Sockets
server = listen(2000)
while true
conn = accept(server)
println("connection accepted")
@async begin
try
line = readlines(conn)
println(line)
str = "server"
write(conn,str)
println("write done")
sleep(2)
catch err
print("connection ended with error $err")
sleep(2)
end
end
end
客户端代码(Groovy):
class groovy_client {
static void main(String[] args) {
while (true) {
try {
dataTransfer()
println 'dataTransfer success'
}catch (e) {
println(e)
sleep(2000)
}
}
}
private static void dataTransfer() {
Socket s = new Socket('localhost', 2000)
println 'connect to the server'
s.withStreams { input, output ->
// BufferedReader reader = new BufferedReader(new InputStreamReader(input))
// str = reader.readLine()
// println(str)
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(output))
writer.write('Hi server')
writer.flush()
input.withReader{reader ->
str = reader.readLine()
println 'haha'
println(str)
// def reader = input.newReader()
// def buffer = reader.readLine()
// println "server: $buffer"
sleep(2000)
}
println 'disconnect'
}
}
}
而且我也对插座的工作原理表示怀疑。服务器和客户端是否同时发送和接收消息?就像服务器告诉客户端将 1 加到 int_a,而客户端将int_a发送回发件人。int_a是保留原始值还是添加 1 并发送到服务器?
答: 暂无答案
评论