因此,我对Python还是很陌生,现在正尝试了解如何在Python中使用TCP发送请求。示例代码和文档不是很有帮助(对我来说,因为我不懂Java)。
文档:
https://www.sharekhan.com/Upload/General/TradeTigerAPIForClient.pdf
到目前为止,我有以下内容
set -s nullglob
如果我使用此程序,程序将显示我已连接并且set -e
是library(dplyr)
library(janitor)
dataset <- data.frame(ola = sample(c("a", "b", "c", 150, replace = TRUE)),
s_18 = sample(1:5, 150, replace = TRUE))
dataset <- dataset %>%
mutate(v18 = case_when(
s_18 == 1 ~ "Agree",
s_18 == 2 ~ "Partly Agree",
s_18 == 3 ~ "Neutral",
s_18 == 4 ~ "Partly Disagree",
s_18 == 5 ~ "Disagree"
))
sv18x <- dataset %>%
count(v18) %>%
janitor::adorn_percentages("col") %>%
janitor::adorn_pct_formatting()
我也尝试过
import socket
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server = '192.168.43.211'
port = 800
request = "DataLength = 196|Transcode = 1|LoginId = ***|MemberPassword = sh*|TradingPassword = S77*| IP = 192.618.31.211|Reserved = |"
s.connect((server,port))
s.send(request.encode())
result = s.recv(4096)
result
是b''
如何使用文档中的命令获取数据?
答案 0 :(得分:1)
根据this,您可以发送如下所示的TCP数据包:
import socket
server = '192.168.31.211'
port = 80
buffer_size = 4096
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((server, port))
sock.send(message)
data = sock.recv(buffer_size)
sock.close()
请注意,我没有在此处添加您的消息,也没有对您的数据进行编码。但是,正如评论中指出的那样,根据IANA,您的IP地址被错误地写入并指向私有IP地址,因此,如果您尝试通过公共网络发送出去,则不会工作。此外,我注意到您的代码还有其他一些问题:
socket
库和您建议的方式一样,您正在发出TCP请求。因此,标头信息将包含在您的请求中,因此您无需自己包含它。否则,我看不到您的代码有任何问题。