- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试通过 stunnel 实现 TCP 套接字,但不确定如何捕获服务器响应。我的stunnel配置文件是这样的:
[Coinbase]
client = yes
accept = 127.0.0.1:4197
connect = fix.gdax.com:4198
verify = 4
CAfile = /etc/fix.gdax.com.pem
我的 Python 代码是:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("127.0.0.1", 4197))
msg = b'GET / HTTP/1.1\nHost: www.google.com\n\n' # ping google as a means of testing
s.send(msg)
print(s.recv(1024))
无论我通过套接字发送什么消息(包括位于 fix.gdax.com 的服务器所期望的消息),该打印语句的结果始终只是一个字节形式的空字符串:
b''
stunnel日志如下:
2017.11.02 20:49:58 LOG5[7]: Service [Coinbase] accepted connection from
127.0.0.1:65205
2017.11.02 20:49:58 LOG5[7]: s_connect: connected 52.86.60.82:4198
2017.11.02 20:49:58 LOG5[7]: Service [Coinbase] connected remote server from
192.168.0.14:65206
2017.11.02 20:49:58 LOG5[7]: Certificate accepted at depth=0: C=US,
ST=California, L=San Francisco, O="Coinbase, Inc.", CN=*.gdax.com
2017.11.02 20:50:06 LOG3[7]: readsocket: Connection reset by peer
(WSAECONNRESET) (10054)
2017.11.02 20:50:06 LOG5[7]: Connection reset: 37 byte(s) sent to TLS, 0
byte(s) sent to socket
我对此的解释是消息发送正常并且证书有效等,但我不知道如何接收服务器发回的数据...非常感谢任何帮助!我对 TCP 和 SSL 很陌生,如果有任何术语错误,我深表歉意。
最佳答案
如果连接被远程方关闭,socket.recv() 将返回一个空字符串。
您似乎正在尝试连接到 FIX 网关。如果 FIX 服务器没有收到正确的 LOGON 消息,它会在没有任何响应的情况下关闭连接,这是一种非常标准的行为。您发送的第一条消息必须是登录 - 类似于:
8=FIX.4.4|9=74|35=A|34=1|49=SenderCompIdGoesHere|52=20171103-01:15:00.000|56=TargetCompIdGoesHere|98=0|108=30|10=144
其中“|”是 SOH(ASCII 代码 01)字符。如果您不发送此消息,或者其中有任何错误(例如 CompID 或 FIX 版本、时间戳等),服务器通常只会关闭连接(这让您需要猜测才能弄清楚您发送的是什么)发送错误)。
此外,您只能发送 FIX 协议(protocol)消息,您试图通过它访问 google 的“GET ...”字符串是 HTTP 协议(protocol)的一部分 - FIX 服务器无法识别它。
关于python - 你如何使用带 stunnel 的 Python 套接字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47085328/
我已经创建了一个 conf 文件,用于连接到位于/usr/local/etc/stunnel/中的 stunnel 的地址和端口,并启动了 stunnel 服务。 我已经把地址绑定(bind)到我的本
我有运行 stunnel 的机器 A。我正在从机器 B 的机器 A 的端口上发送数据,但是当请求来自不同的机器时,stunnel 没有监听这个端口。当我从本地计算机在同一端口上发送请求时,它工作正常。
我正在尝试了解用于在 stunnel 上到期时更换证书的程序。所以我在 Windows 上安装了一个简单配置的 stunnel: [test1] accept = 127.0.0.1:21234 co
1 个关于 Stunnel 的问题。我想将 Stunnel 用作互联网的 FIX(金融信息交换)网关,以支持 SSL 和非 SSL 连接。 Stunnel 是否可以在没有任何加密的情况下运行?我刚刚尝
我正在尝试在 Windows 中使用 REDIS 设置 stunnel。安装 stunnel 和 redis 后,我在服务器和客户端模式下进行了以下配置: 客户端机器配置: [redis-stunne
我知道 STunnel 可以通过配置文件中的“client = no”或“client = yes”行设置为服务器或客户端。有没有办法让一台机器既是服务器又是客户端? 最佳答案 这样就容易多了您只需在
我正在尝试更正 CentOS 6.x 的以下 stunnel 语法: stunnel -c -f -d 1143 -r imap.foo.tld:993 -P '' 建议的语法不起作用: -c: No
我使用 stunnel 版本 4.29 连接到服务,该服务的提供者禁用了通过 stunnel 4.29 的连接。这现在需要我从 WHM 更新我的 stunnel。 我更新使用 yum update
我有 Ratchet webSocket 服务器在运行并且运行良好。问题是某些连接在握手后立即关闭。 在搜索 stackOverflow 和 google 之后我发现我应该使用 wss,因为使用 ss
有人可以向我解释使用一种优于另一种的好处吗?它们具有可比性吗? 我知道 sshuttle 充当出站通信的代理,但是它也可以用于转发连接吗? 例如,stunnel 可以用作在我的网络之外传输数据的反向代
我有一个完全可操作的系统,其中基于 openssl 的客户端与 openssl 服务器交互。每个客户端都有自己的证书,由服务器验证。已使用 openssl(X509、pem)生成证书。它们是自签名的。
我有一个监听端口 8081 的 Web 服务(它是一个在单声道上运行的 ServiceStack REST Web 服务,如果有帮助的话)。我正在尝试使用 stunnel 保护它,但问题是一旦我连接到
寻求一些帮助,以通过 FIX4.4 协议(protocol)使用 stunnel 和 quickfix python 与我的经纪人 DUKASCOPY 建立连接。 这是我的 channel 配置: c
一段时间以来,我一直在启用 SSL 的页面上使用 stunnel 进行本地 Django 开发,但是自从升级到 Yosemite 之后它似乎停止工作了: $ sudo stunnel stunnel/
在 CentOS 7 上运行 Apache v2.4、PHP v5.6 w/php-fpm 所以我正在尝试让 wss 与 stunnel & Ratchet 一起工作。我有 Ratchet 的 Hel
我需要连接的服务为我提供了三个文件,我正在尝试弄清楚我需要什么来创建 STUNNEL 需要的 Cert=xxx.PEM 文件 我有一个“keystore.jks”文件。用 keytool 转储说这是一
我正在尝试通过 stunnel 实现 TCP 套接字,但不确定如何捕获服务器响应。我的stunnel配置文件是这样的: [Coinbase] client = yes accept = 127.0.0
我正在尝试使用 stunnel 将 wss 连接转换为 ws 连接,因为 wsServer不支持wss。服务器运行的是 Ubuntu,而我使用的客户端是 Chrome,如果重要的话。 这是我的stun
我在 Ubuntu 14.04 上使用 stunnel4 安全地将连接转发到远程连接。我重新启动了 stunnel 服务,它似乎正在正常运行,但我无法打开与 127.0.0.1:8888 的连接。 $
SSL 保护 Redis 集群的正确方法是什么? (客户端-服务器、节点-节点通信)。 如 Redis 集群规范中所述,集群上的每个节点都监听 2 个端口:用于“外部”通信的端口和用于集群总线的端口。
我是一名优秀的程序员,十分优秀!