getsockopt

    0热度

    1回答

    我是Linux新手,想了解recv()是如何工作的。尝试了一个我无法清楚地找到解释的场景。我希望有人能够启发我。这里是场景: 使用TCP套接字在两个进程(发送者和接收者)之间发送5MB的数据。我在运行Linux的i.MX6 Sabrelite板上执行这些过程。 Sender.cpp: char buffer[5MB]; send(sendSocket, (void*) buffer, 5 MiB

    0热度

    1回答

    我遇到了一个问题,当我使用函数getsockopt来获取MSS时,我得到了一个负数(或0)。但功能是成功的,套接字是正确的值hSocketService是正确的和工作。 ,所以我就: getsockopt OK Taille maximale d'un segment = -13312 下面是代码: int tailleMsgRecu, nbreBytesRecus, finDetectee

    2热度

    1回答

    我正在接受HTTP请求并将它们转发到目标上的项目。我们使用Linux(2.6.35.14-106.fc14.x86_64)和TPROXY。我会在下面详细说明。 我看到的问题是,偶尔(1000次中的1次,有时是100万次中的1次),Linux将返回对等地址作为目标地址。 有没有人见过这种情况?我从2007年开始在网络上看到一个音符,所以我认为这可能有点过时。 我有以下代码(请原谅这里显示的不一致的方

    6热度

    2回答

    获取套接字系统调用(如recv)错误,哪个更好(性能级别)? 使用普通的老errno 或者使用SO_ERROR作为getsockopt() OPTNAME? 我认为errno(在我的系统上定义为__error())速度更快,因为它不是系统调用。我对吗 ? SO_ERROR的优点是:获取后自动错误重置,并且我们确信错误只涉及我们的套接字。这更安全。 你认为哪一个更好?两者之间的表现真的不同吗?

    3热度

    2回答

    当用SO_RECVBUF调用setsockopt,然后转身用SO_RECVBUF调用getsockopt时,它似乎告诉我它将缓冲区大小设置为我要求设置的两倍。有人知道为什么这可能是? 代码问题: https://gist.github.com/rdp/8443238 输出: setting it as 2222 [udp @ 0x1a72ec0] end receive buffer size

    2热度

    1回答

    我想检测传入的Internet数据包的IP选项。这是我的代码。 //#define IPPROTO_IP 0 //#define IP_OPTIONS 68 #define SENDER_PORT_NUM 53 #define SENDER_IP_ADDR "127.0.0.1" #define true 1 static void bail(const char *error) {

    4热度

    1回答

    我试图用setsockopt将IPTOS的值设置为IPTOS_THROUGHPUT。致电setsockopt致电0。但getsockopt显示IP_TOS值设置为1,这与IPTOS_THROUGHPUT(0x8)不同。有没有人知道可能导致setsockopt和getsockopt中IPTOS值不匹配的原因? 这里的日志输出: 设置DSCP标记在插座26 在插座26 setsockopt的8个返回0

    2热度

    2回答

    假设我从socket(2)得到了一个文件描述符,并且我已经对它做了connect(2) - 以后有什么办法可以确定(从正在运行的程序中)哪个网络设备可能用于底层传输?在fd上调用stat(2)给出的设备号码为0; ioctl(2)或getsockopt(2)选项都不适用。

    1热度

    1回答

    有谁知道是否有现有的库,允许我调用getsockopt以获取iptables已通过我的Java应用程序重新路由的套接字的目标IP? Here's a similar question在Netty邮件列表中没有得到答复。 在C调用看起来像: getsockopt(ctx->client.fd, SOL_IP, SO_ORIGINAL_DST, &SANY_ADDR(addr), &SANY