Articles of networking

我如何在C中find一个端口可以自由使用?

操作系统是Linux。 我有一个服务器进程,可以实时更改其端口。 但是,我想提前知道如果一个端口是绑定之前是免费的。 scheme:服务器绑定localhost:5000,并接收绑定在localhost:6000的请求。 服务器必须检查端口是否空闲。 这个问题寻求的答案,提供了一个例程,检查一个端口是否免费。 为了logging,我编辑我的问题与代码片断,检查端口是否可以使用。 这并不意味着它会被使用。 下面的代码回答“如果端口现在可用”的问题,它不使用它。 打开一个套接字,检查绑定是否返回EADDRINUSE并closures套接字。 #include <iostream> #include <sys/socket.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <arpa/inet.h> #include <errno.h> int main(int argc, char **argv) { struct sockaddr_in serv_addr; if( argc < 2 ) return 0; int port = atoi(argv[1]); int sockfd = socket(AF_INET, SOCK_STREAM, 0); if( sockfd < 0 ) […]

在Linux上获取有关networking接口更改的通知

我需要一种方式来通知我的用户空间的应用程序时,networking接口启用或禁用。 我希望这样做,而不诉诸于投票。 当networking相关的事件发生时,内核是否提供某种钩子来触发callback函数?

我怎样才能诊断我们的Java IP多点传送应用程序?

出于某种原因,我运行的每个组播例子(计算机运行OpenSUSE Linux)都可以工作。 客户都静静地坐着。 如何找出为什么组播被阻止/忽略? 一些例子: 例1 http://www.roseindia.net/java/example/java/net/udp/UDPMulticastServer.java 例2 http://docs.oracle.com/javase/tutorial/networking/datagrams/broadcasting.html (使用这些文件:) http://docs.oracle.com/javase/tutorial/networking/datagrams/examples/MulticastServer.java http://docs.oracle.com/javase/tutorial/networking/datagrams/examples/MulticastServerThread.java http://docs.oracle.com/javase/tutorial/networking/datagrams/examples/MulticastClient.java http:// docs.oracle.com/javase/tutorial/networking/datagrams/examples/one-liners.txt

如何为每个进程路由使用Linuxnetworking命名空间?

我想通过浏览器抓取网页,并存储每个URL的networkingstream量(不仅HTTP,而且udp,rtmp等)我遇到这种解决scheme,使用Linuxnetworking名称空间为每个进程路由。 以下是我遵循的步骤,但无法浏览网页。 ip netns add test 创build一对虚拟networking接口(veth-a和veth-b): ip link add veth-a type veth peer name veth-b 改变veth-a接口的活动命名空间: ip link set veth-a netns test configuration虚拟接口的IP地址 ip netns exec test ifconfig veth-a up 192.168.163.1 netmask 255.255.255.0 ifconfig veth-b up 192.168.163.254 netmask 255.255.255.0 在testing命名空间中configuration路由: ip netns exec test route add default gw 192.168.163.254 dev veth-a sudo bash -c […]

了解Tcpdumpfilter和位掩码

我想通过使用tcpdump嗅探http头。 这个filter工作正常,但我不明白 – (((ip[2:2] – ((ip[0]&0xf)<<2)) – ((tcp[12]&0xf0)>>2)) != 0) 我GOOGLE了,但我找不到任何有用的信息 这是整个tcpdump命令 sudo tcpdump -A 'dst [dest host] or src [src host] and tcp and (((ip[2:2] – ((ip[0]&0xf)<<2)) – ((tcp[12]&0xf0)>>2)) != 0)' -i eth0

如何计算TCP校验和

我正在写一个内核模块,它使用Netfilter钩子来修改一些TCP头信息,显然,在发送之前,我想重新计算校验和。 我也在接收端编辑标题,所以我也需要重新计算。 在网上search,我发现有些人说我可以简单地把它设置为0,它会为我计算,显然这是行不通的。 我也find了这个function tcp_v4_send_check(struct sock *sk, struct sk_buff *skb); 虽然没有人解释这是如何使用的,以及我是否可以在接收/发送方式中实际使用它。 我自己的尝试是将校验和设置为0,然后调用这个函数传递我有的skb和我有的skb-> sk,仍然没有。 那么请问,什么是直接计算TCP数据报校验和的方法?

Swarm需要在docker中使用overlay来使用多主机networkingfunction

我已经通过示例开始覆盖 ,我有一个简单的查询。 是否可以使用叠加使用多主机networkingfunction而不创buildswarm cluster ? 我不想使用像编织等第三方插件我想使用docker原生networking支持。 我有运行RHEL和3.16+ kernel docker 1.9 3.16+ kernel 。

linux:禁用loopback并通过一个comp的2个eth卡之间的线路发送数据

我有一个与2个乙烯卡,用接插线(从第一个到第二个直接eth。电缆连接)的comp。 Linux安装,我想从第一张网卡发送数据到第二。 我想强制数据包通过电缆传递。 我可以在卡上设置任何IP。 与平,我得到卡上的计数器不断。 是否有可能与TCP / IP套接字? PS。 我需要写一个程序。 这将通过eth发送数据包,所以stackoverflow相关的问题。 可以有一些操作系统依赖的方式,他们也会帮助我

在具有多个接口的服务器上接收多播(linux)

要在我的非默认网卡(dvb)上接收多播,请执行以下操作: 打开一个套接字(AF_INET,SOCK_DGRAM) 在dvb接口上join带有IP_ADD_MEMBERSHIP的多播地址 绑定多播地址(注意,一个常见的错误是绑定“0.0.0.0”,然后在该套接字上接收,甚至你不感兴趣的多播)和端口 此时接收所需多播数据包的唯一方法是在路由表中添加一条规则,通过dvb到达发送者所在的networking(另一个networking),就好像dvb需要回复多播发送者; 让我们说一个源发送者多播模式。 任何人都知道发生了什么事? 这个问题对我来说很烦,因为原则上我不知道发件人的IP地址。

Linux的USB连接/断开事件

您好,我正在一个embedded式Linux设备与usb端口使用g_ether驱动程序的USBnetworking。 当usb插头连接时,dmesg的输出是: g_ether小工具:全速configuration#2:RNDIS 拔下USB电缆时,不会将消息写入dmesg。 使用C如何侦听连接/断开事件? embedded式Linux操作系统没有任何附加function。 没有dbus守护进程或hotplug助手脚本。 我甚至不确定这些是否有用。