c - Netcat套接字编程

标签 c sockets netcat

我正面临一些问题来解决问题。每次我连接到服务器程序时,服务器程序都会给出 4 个随机无符号整数。我的工作是将 4 个数字相加并发回总和。但是时间是有限制的。所以如果我想用计算器来完成这项工作,那是不可能的。因此我不得不求助于脚本。我想使用 netcat 连接到服务器,检索 16 个字节,将数据通过管道传输到我的 C 程序(它将数据解析为 4 个无符号 int 变量并打印出总和),然后再次将此程序输出重定向到 netcat

netcat <server> <port> | myProg | netcat <server> <port>

但是netcat第二次打开的tcp套接字不是之前的套接字。所以这次将呈现一组不同的 4 个数字,这会破坏整个努力。我的问题是:是否可以通过任何方式(使用 netcat)使用先前的套接字(由 netcat 打开)将计算出的总和泵回服务器?

我不想使用 C 来进行套接字编程,因为它对我来说太难了。 我也知道

echo 3<>/dev/tcp/server/port
cat <&3 | ./myprog | more >&3

可能会解决我的目的(如果我错了请纠正我)。但我想用 netcat 的方式来做。提前致谢。

最佳答案

使用 socat 而不是 netcat

socat 可以生成命令本身,同时重定向输入和输出(您不使用 shell 重定向,让 socat 处理它)

socat TCP:server,port SYSTEM:myProg

关于c - Netcat套接字编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30961286/

相关文章:

clock() - c 函数的执行时间

linux - 在 bash 中使用 netcat 发出 http get 请求

linux - 如何延迟管道 netcat 连接到第一个输入

linux - 启动网猫服务器

CS50 Runoff 程序正在运行,但 check50 表示没有运行

c - 何时在 C 语言的简单多客户端服务器应用程序中加入创建的线程?

c - 程序没有正确注册我的输入

java - 构建从本地主机到 google.com 的套接字时出现错误

基于Python的Socket程序接受libPcap(C-based)

sockets - 如何使用 Nginx/Openresty 将 tcp 流复用到多个 websocket 客户端?