- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我需要从内核空间更改 TCP 套接字(尽管我想保持它的通用性)。 USB 驱动程序将收到一条消息,需要对给定的 socket
结构进行此更改。
直接调用该函数需要用户空间内存,我无法在生产环境中使用变通方法。因此,直接调用似乎不太可能。我看到的另一个解决方案是复制需要用户空间内存的部分,但我也不想将此解决方案投入生产。
我正在考虑编写一个用户空间程序,通过 procfs 与驱动程序对话并进行调用。驱动程序会将数据放入文件中以指示用户空间应用程序执行各种操作。
有没有更好的方法来实现这一点?
最佳答案
根据选项,您可以调用 sock_setsockopt
或 tcp_setsockopt
来自内核空间。还有 IPv4 的函数和 IPv6选项。
或者,如果您只想操作特定选项,您可以查看这些函数是如何实现的,然后对您的特定选项使用相同的实现。例如,如果您想调整 TCP_CONGESTION
tcp_setsockopt
直接执行此操作(在验证传入的值之后):
lock_sock(sk);
err = tcp_set_congestion_control(sk, name, true, true,
ns_capable(sock_net(sk)->user_ns,
CAP_NET_ADMIN));
release_sock(sk);
关于c - 我需要从内核空间调用套接字 "setopt"例程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57662617/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!