[英]Python Client Unable to send data to Ruby Server
我有一些非常简单的 python 和 ruby 代码,旨在允许我将数据包从一些 python 代码发送到 ruby 代码。 我能够更早地完成这项工作,但现在无法重新创建它。 客户端(python 代码)能够连接到服务器,但永远不会超出将永远阻塞的 get 调用。 我没有从 python 端正确发送数据吗?
Ruby 代码(服务器):
require 'socket'
server = TCPServer.open('127.0.0.1', 8211)
# listen for commands to the server
loop {
serverClient = server.accept
# i am able to connect
data_string = serverClient.gets
# i never reach this point
print("process data!\n")
}
Python 代码(客户端):
import socket
import json
socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket.connect('127.0.0.1', 8211)
#try to send over a basic dict/json object
obj = {"Key":"Value"}
data = bytes(json.dumps(obj), "utf-8")
socket.send(data)
阅读 ruby TCPServer
文档和这个答案,看起来您需要关闭客户端。 试试这个代码,它也可以为多个客户端提供服务:
require 'json'
require 'socket'
server = TCPServer.open('127.0.0.1', 8211)
# listen for commands to the server
loop {
Thread.start(server.accept) do |client|
response = client.gets
data = JSON.parse(response)
print("process data!\n")
puts data
client.close
end
}
仅供参考:在 ruby 中不鼓励使用驼峰命名法命名变量,请改用 snake_case。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.