草庐IT

UDP-only

全部标签

c - 这是处理 UDP 消息的部分读取的正确方法吗?

因此在TCP流的情况下,需要跟踪每次recv调用读取了多少消息。然后可以将部分读取拼凑在一起,最终可以正常接收消息。但是对于UDP报文,应该如何处理部分读取(假设所有的UDP报文都足够小以避免分片)?由于部分消息的剩余数据似乎被丢弃,是否只是确保recvfrom返回与已发送缓冲区大小相同的问题?如果存在差异,则表示它是部分且有缺陷的消息,应跳过。所以从概念上讲,TCP示例需要一个循环,而UDP示例只需要一个if语句。这是正确的吗? 最佳答案 不可能在UDP中进行部分读取。UDP保证接收到的数据报与发送时一样,无论是否分片,因此必须先

objective-c - 使用 "struct sflt_filter"为 TCP 和 UDP 协议(protocol)设置数据过滤器

我使用了structsflt_filter,它是kpi_socketfilter.h的一部分,为工作正常的TCP或UDP协议(protocol)单独设置过滤器。但我想在同一个程序中同时使用TCP和UDP协议(protocol)过滤器。这条线路适用于个人通话-sflt_register(&sflt_filter_variable,PF_INET,SOCK_STREAM,IPPROTO_TCP);我已经尝试过了注册单个“sflt_filter_variable”变量两次。sflt_register(&sflt_filter_variable,PF_INET,SOCK_STREAM,IPPR

c - UDP 中的套接字需要文件描述符

在我的tcp程序中,我有一个名为fd的int,fd设置为调用accept()时返回的文件描述符。我现在想让这个代码成为udp而不是tcp,但是udp没有accept()那么我如何获得accept()会返回的值,但是在udp中? 最佳答案 UDP是无连接的,所以listen()和accept()没有被使用(connect()只是分配一个静态绑定(bind),所以send()/recv()可以用来代替sendto()/recvfrom(),从而允许操作系统为您执行一些数据包过滤)。您从socket()获取UDP描述符,然后根据需要在其上

ios - FFmpeg UDP 超时,重试 TCP 回调

我正在使用FFmpeg在iOS应用程序中读取一些RTSP流。如果防火墙或其他服务阻止网络通过UDP进行接收,FFmpeg会很好地返回到通过TCP进行读取。我的问题是:如何通知我回退到TCP发生了?我需要知道应用程序是否正在通过UDP或TCP读取流,并且仍然让FFmpeg做它很好的回退。这有回调吗?有没有办法获取正在使用的协议(protocol)?谢谢。 最佳答案 我找到了解决方案:建立连接后,可以从AVFormatContext的私有(private)数据(priv_data)中读取较低的传输协议(protocol)。下面是我的做法

linux - 通过sysctl进行性能调优,设置net.core.rmem_default (r/w)/net.ipv4.tcp_mem/net.ipv4.udp_mem有什么区别

通过net/core设置read/writememdefault和在sysctl中设置protocolmin/max/defaultnet/ipv4有什么区别?详细解释或资源请求net.core.wmem_defaultnet.core.rmem_defaultnet.ipv4.tcp_memnet.ipv4.udp_mem谢谢 最佳答案 看看https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txthttps://www.kernel.org/doc/Docu

Java 对象 LinkedList 属性 : only receiving the first element on server-side using TCP

一些上下文:客户端正在向服务器发送一个SOSPFPacket对象(通过TCP),该对象具有各种属性,例如VectorlsaArray.LSA本身有一个LinkedListlinks属性。在我的测试用例中,发送了两条消息。在这两封邮件中,只有一个LSA在vector中。在第一条消息中,LSA有一个LinkDescription,在第二条消息中,它有两个。当我发送消息时,我会增加messageId.服务器收到两条消息都带有正确的id,但在第二条消息中,链接只包含一个链接而不是两个。我是无知的...对象实现如下:importjava.io.*;importjava.util.Vector;p

sockets - UDP 数据包丢失(LAN-Netcat),切换服务器-客户端数据包正常

我试图在LAN上运行一个使用UDP套接字的游戏,但在我的网络中看不到另一台计算机,所以我尝试了一些东西来查看是什么导致了这个问题。正在运行的操作系统是:PC1:LinuxUbuntuPC2:Windows10问题是当PC2正在监听时,PC1可以发送和接收数据包:$PC2>ncat-ul8888$PC1>ncat-uPC28888OK发送和接收工作正常,但是当客户端/服务器切换时,数据包丢失。$PC1>ncat-ul8888$PC2>ncat-uPC18888旁注,在PC2上,当尝试使用Python的socket.sendto函数发送数据包时,返回值不是-1,而是数据包的大小.在PC2上

蜂窝网络上的 TCP/UDP

我是这方面的新手,希望得到澄清。我相信CDMA会被归类为物理层的一部分,那么什么用于蜂窝网络中的数据链路层(根据OSI模型)?蜂窝网络中是否使用TCP/UDP?如果是这样,以什么身份? 最佳答案 在CDMA网络(以及其他一些网络,例如GPRS和HSPA)上,PPP用于数据链路层(第2层)。TCP/UDP(或更一般地说,IP)确实在CDMA网络中使用,主要用于连接到CMDA提供商ISP网络,以便通过电话和“数据棒”访问互联网。这些数据棒通常在USB串行端口上提供模拟调制解调器,其使用方式与过去的拨号调制解调器非常相似。您将使用相同的“

networking - 为什么 UDP 和 TCP 使用端口号而不是 PID 来定位目标?

如上。也许端口号更可靠,因为进程可以终止?谢谢 最佳答案 进程不是网络概念。不清楚通信方是否有进程的概念。此外,一个进程可以有多个连接。 关于networking-为什么UDP和TCP使用端口号而不是PID来定位目标?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/37642576/

Azure 容器实例 udp/tcp

我尝试为grafana和graphite80和8125公开两个端口。当我尝试打开两个端口时收到错误消息:"error":{"code":"MixedProtocolsNotSupported","message":"Mixedprotocolsarefoundincontainergroup'test'.AcontainergroupcanhaveeitherprotocolTCPorUDP,butcan'thaveboth."这是我的模板"osType":"Linux","ipAddress":{"type":"Public","ports":[{"protocol":"tcp","