是否可以通过 TCP 连接直接发送数据?

网络工程 tcp
2022-03-01 13:21:09

我一直在使用 GET 和 POST 方法与我的 Web 服务器进行通信,但现在我只需要发送和接收数据即可。

例如,我只想发送“abcd”字符串。

3个回答

完全可以通过 TCP 连接进行通信,正如 jwbensley 所提到的,Scapy 是一个出色的数据包操作工具。但是,在您的情况下,我会坚持使用netcat 之类的东西。Netcat 是一种低开销工具,允许您通过网络读取/写入数据。

TCP 连接的简单实现可能看起来很像这样。

Zgrkpnr@server:~$ netcat -l 4444

Zgrkpnr@client:~$ netcat server_ip 4444

更多示例可以在The Geek Stuff中找到。

回答这个问题Is it possible to directly send data through TCP connection?- 答案是肯定的。

如果您想扩展并询问如何做到这一点,您可以自己编写程序或使用像ScapyOstianto这样的数据包制作工具。

显然,如果您要跳出 7 层 OSI 模型的常规行为,那么您需要的通信可能不会严格按照操作系统上的网络堆栈的行为方式工作。

如果您正在考虑使用 TCP 端口 80 上的 Web 服务器,而不使用 HTTP 协议中定义的过程,您的结果可能不是您所期望的。请记住,标准 Web 服务器将期待符合 HTTP 对话规则的通信。

如果您只是想发送数据报,jQuery AJAX应该可以正常工作吗?(AJAX 使用 HTTP)

node.js 之上的原始套接字。

如果你想开发一些东西:
我使用node.js你可以制作任何你能想象到的东西。 例如, Google Cloud Platform提供最多 (30) 个带有公共 IP 地址的虚拟机的 60 天免费试用,您可以在这些虚拟机上进行开发/测试。或者,您可以获得 50 美元的树莓派并将其联网(前提是您的 ISP 允许您映射/拥有可路由的公共 IP)。

这是一个示例UDP 服务器和客户端。希望有帮助。