Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >手动选择TCP上的接口来发送数据

手动选择TCP上的接口来发送数据
EN

Stack Overflow用户
提问于 2008-09-23 00:05:00
回答 3查看 846关注 0票数 0

我有一个只监听特定接口的TCP服务器。我希望在accept()调用之后,如果传入连接来自xxx.xxx.xxx.0子网,那么数据应该通过intf1,否则数据应该通过我的服务器正在侦听的intf2发送。

两个接口具有相同的路由设置和优先级。所有网络都可以从这两个接口访问。

一种解决方法是添加一个优先级更高的通过intf1的新路由,但我希望这是一个基于代码的决策。

代码是在Linux上用纯C编写的。

EN

回答 3

Stack Overflow用户

发布于 2008-09-23 03:29:37

虽然它不完全是您正在寻找的纯C选项,但是您也许可以在收到accept()时使用iptables规则。

(尽管快速浏览/lib/iptables会发现您可能很幸运)

我正在想象一个规则,它会将所有tcp流量重定向到您指定的设备。您甚至可以让规则知道套接字状态,这样就不需要在accept()之后指定接口。

所有这些都是适用的,直到我发现了这个计划中的明显缺陷,拍了拍我的头,说:“哦!”

票数 1
EN

Stack Overflow用户

发布于 2008-09-23 00:52:33

不幸的是,您的选择是有限的,因为TCP/IP堆栈是在内核中实现的,而您的接口是路由表。最好的办法是手动分配路由。

您还可以使用netlink库动态添加/删除路由,但TCP数据包的一部分将通过“错误”接口,直到调用完成。当带有原始接口地址的数据包通过另一个接口发送时,您可能会遇到路由问题。

票数 0
EN

Stack Overflow用户

发布于 2008-09-23 03:46:36

您可以使用rtnetlink在程序中更改路由。您可以修改所需的所有参数。另请参见netdevice

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/119745

复制
相关文章
利用sendmsg和recvmsg来指定发送接口或者获取接收数据接口
sendmsg和recvmsg函数是一对相对下层的套接字发送、接受函数。
全栈程序员站长
2022/07/06
1.4K0
TCP协议发送/接收数据简单实现
TCP 协议是面向连接的通信协议,即传输数据之前,在发送端和接收端建立逻辑连接,再传输数据。它提供了两台计算机之间的可靠无差错的数据传输。在 TCP 连接中必须要明确客户端与服务器,由客户端向服务器发送连接请求,每次连接的创建都需要经过 “三次握手” 三次握手:TCP 协议中,在发送数据的准备阶段,客户端与服务器之间的三次交互,以保证连接的可靠
ITer.996
2022/08/30
1.4K0
TCP协议发送/接收数据简单实现
Jmeter-TCP( Socket) 连接发送数据
Target Server:TCP采样器中填写服务器地址、端口。 Connect:设置连接超时时间。 Response:设置响应超时时间。 Re-use connection:表示重复使用该连接发送请求。 Close connection:表示每次发送完该条数据后,关闭连接。 End of line(EOL) byte value:终止符。
程序媛淼淼
2022/07/01
7.8K0
Jmeter-TCP( Socket) 连接发送数据
tcp回显客户端发送的数据
客户端: import socket tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) tcp_socket.connect(('127.0.0.1', 12345)) while True: tcp_socket.send(input('你输入要回显的数据:').encode()) print('回显数据:', tcp_socket.recv(1024).decode()) 服务端: import socket
汪凡
2019/02/28
1.5K0
TCP报文发送的那些事
 今天我们来总结学习一下TCP发送报文的相关知识,主要包括发送报文的步骤,MSS,滑动窗口和Nagle算法。
程序员历小冰
2019/04/25
1.4K0
TCP报文发送的那些事
详解TCP协议数据发送中需要关注的细节
TCP数据传输一个特点是,协议层在发送数据时不会关心数据形成的逻辑结构,不管上层协议如何组织数据,一旦数据抵达TCP协议层后,他们只会被当做数据流对待。TCP协议层在接收到上层协议传来数据时,它会将数据缓存在内存中,等到合适时机在选取一部分数据发送出去。
望月从良
2019/10/09
9710
TCP报文发送的那些事
 今天我们来总结学习一下TCP发送报文的相关知识,主要包括发送报文的步骤,MSS,滑动窗口和Nagle算法。
程序员历小冰
2019/04/18
1.1K0
TCP报文发送的那些事
如何用GET的方式来发送json数据
curl -XGET 'http://192.168.5.182:9200/ecommerce/product/_search' -d' > { > "query":{ > "match_all":{} > } > }'
算法之名
2019/08/20
3.6K0
Nodejs 发送 TCP 消息的正确姿势
最近使用 NODE-RED 跟 TCP 打交道。NODE-RED 里内建了一个节点叫“tcp-out”,看文档呢使用这个节点可以很方便的把 payload 用 TCP 协议发送出去,但是事实上事情没有这么简单。其实当我第一次看到这个节点用法的时候我就觉得会有问题,果不其然。既然节点有问题,那么就干脆写代码吧,反正 NODE-RED 支持自定义 javascript function 。于是就花了点时间研究了下用 Nodejs 来发送 TCP 消息。
MJ.Zhou
2023/03/10
1.6K0
Nodejs 发送 TCP 消息的正确姿势
通过异步方式发送和接收数据(tcp异步收发数据)
服务端 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net; using System.Net.Sockets; using System.Threading;
liulun
2022/05/09
1.5K0
java开发TCPIP协议:实现TCP单向裸数据发送
前面我们花费大量篇幅完成了TCP协议各种细节的讲解,从中我们能体会到该协议的复杂和烦琐。因此要想从零实现工业级鲁棒性的TCP数据传输协议几乎不可能,因此我们在实现过程中必须尽可能简化,就像老子说的天下难事必作于易,天下大事必作于细,因此我们在实现这么复杂的协议系统时必须从最简单的情况入手,然后一点点增加其骨架和血肉的丰富性。
望月从良
2019/11/09
1.1K0
详解TCP数据包中SYN,ACK字段与数据发送的关联
在TCP协议中,为了确保数据能稳定发送,协议使用数据包中的syn,ack两个字段来监控数据是否正确发生和接收,本节我们看看这两个字段如何保证数据的平稳传输。
望月从良
2019/09/27
2.6K0
详解TCP数据包中SYN,ACK字段与数据发送的关联
TCP协议(上)
cheese
2023/10/25
2010
TCP协议(上)
RPC接口测试技术-Tcp 协议的接口测试
首先明确 Tcp 的概念,针对 Tcp 协议进行接口测试,是指基于 Tcp 协议的上层协议比如 Http ,串口,网口, Socket 等。这些协议与 Http 测试方法类似(具体查看接口自动化测试章节),但在测试过程中需要做些调整。
霍格沃兹测试开发
2022/04/29
1.1K0
使用JSON Schema来验证接口数据
该文介绍了如何使用JSON Schema来验证接口数据。JSON Schema是一种用于定义和验证JSON数据结构的工具。它可以定义一个JSON对象,并指定该对象中哪些字段是必须的,哪些字段是可选的,以及字段的类型和约束。使用JSON Schema可以方便地验证JSON数据是否符合预期的格式,并确保数据中的字段类型和约束符合要求。该文还介绍了如何使用Dojo Toolkit中的JSON Schema验证模块来验证JSON数据,并提供了相关的示例代码。
IMWeb前端团队
2017/12/29
2.4K0
短信发送接口 – SubMail
public class SubMailSmsSender { private static Logger logger = LoggerFactory.getLogger(SubMailSmsSender.class); private String submailSendUrl; private String submailAppid; private String submailAppkey; public SubMailSmsSender(String
前Thoughtworks-杨焱
2021/12/08
6.6K0
短信发送接口-luosimao
public class LuosimaoPhoneCodeProvider { Logger logger = LoggerFactory.getLogger(this.getClass()); private String smsCodeApiKey; private String voiceCodeApiKey; public void setSmsCodeApiKey(String smsCodeApiKey) { this.smsCodeAp
前Thoughtworks-杨焱
2021/12/08
7K0
UDP协议支持广播发送数据_tcp协议建立连接的过程
之前和大家分享了使用TCP协议进行网络通信的过程,想了解的小伙伴可以看我的这篇文章《Java利用TCP协议实现客户端与服务器通信》,今天来和大家分享一下在Java网络编程开发中,使用UDP协议进行网络通信,
全栈程序员站长
2022/08/18
1.8K0
UDP协议支持广播发送数据_tcp协议建立连接的过程
使用JSON Schema来验证接口数据
最近在做一些关于JSON Schema的基建,JSON Schema可以描述一个JSON结构,那么反过来他也可以来验证一个JSON是否符合期望的格式,于是我想到之前lqlong 之前的一篇 《数据字段防卫探索》 发现JSON Schema可以做这个事情。
IMWeb前端团队
2019/12/04
2.2K0
尝试通过MQTT向thingsboard上的设备发送数据
在thingsboard demo网站上注册一个用户 https://demo.thingsboard.io/signup
lilugirl
2020/02/18
4.7K0
尝试通过MQTT向thingsboard上的设备发送数据

相似问题

手动指定要发送数据的网络接口

21

TCP层数据发送端口的选择

11

在Linux上通过TCP发送/接收数据

52

发送大量TCP数据

11

通过TCP发送数据

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档