jjzjj

udpClient

全部标签

network-programming - iperf如何在udp中报告丢包

Iperf是众所周知的吞吐量计算工具。当我在我的linuxpc上使用iperf尝试udp吞吐量时,它报告了10%的数据包丢失。在UDP协议(protocol)中,数据报没有收到任何确认。但是,iperf以何种方式报告或计算数据包丢失?iperf工具如何知道传输的数据报是否收到。我想知道这个。 最佳答案 由于双方都使用了iperf,iperf确定在每个数据包之后接收什么。基本上,Iperf工具检查序列号在它收到的每个数据报中递增。如果序列号没有递增1,则数据报丢失。如果我们收到一个序列号小于前一个序列号的数据报,那么iperf会收到一

c# - 如何使用 UDP 实现 Traceroute?

显然,ICMP并不是创建Traceroute的唯一方法。This和thisanswer表示可以发送低TTL的UDP数据包(或任何其他数据包)并等待ICMP消息。我将如何在C#中实现它?系统.IO.套接字?TCP对象?有人知道简单/最好的方法吗?更新1:以下代码似乎在命中TTL时正确抛出异常。如何从返回的UDP数据包中提取信息?我怎么知道我收到的UDP数据包是给我的(而不是我主机上的其他应用程序?)publicvoidPingUDPAsync(IPAddress_destination,shortttl){//Thisconstructorarbitrarilyassignstheloc

c# - 从连接的 TcpClient 获取 UdpClient?

我正在尝试在建立Tcp连接后设置Udp连接。所有连接状态和控制都通过Tcp,但我希望客户端和服务器也能够通过Udp进行通信。这是我的问题。服务器将有许多客户端在不同的线程上连接到它。我有它%100只绑定(bind)Tcp工作正常,但我想使用Udp。因为UdpHolePunching我很难在Udp上监听特定端点,因为端点在与NAT设备通信时可能会发生变化。所以,简单地说这个问题:我如何轻松地获得从TcpClient连接到引用的“UdpClient”连接?提前致谢! 最佳答案 UDP不会有隧道,只是因为你有一个成功的TCP连接。您必须像

c# - 如何获取本地网络上运行我的程序的主机的 IP 地址

我构建了一个点对点C#视频session应用程序,它使用特定的TCP端口(17500)进行音频通信。目前,在我的应用程序界面上,我输入了另一个打开了程序的IP地址,以便进行通信。我想做的是自动查找IP地址。所以,我认为实现此目的的最佳方法是获取使用相同TCP端口号17500的本地IP地址。我该怎么做?还是有任何其他方法可以使用相同的应用程序获取IP地址? 最佳答案 如评论中所述,您需要某种对等发现协议(protocol)。由于许多多媒体设备、路由器等使用基于多播的发现协议(protocol),例如SSDP,我创建了一个类似的发现服务

networking - UDP 打洞 : one Symmitric and another non-symmetric NAT

我正在尝试使用打洞实现P2P。这是流程:两个Peers(P1,P2)将向服务器(S)发送1个数据包。Server(S)回复都告诉别人IP:PORTP1和P2接收此UDP数据包,知道对方的外部/公共(public)ip:port。P1,P2开始向其他对等端公共(public)IP:PORT发送数据包。一旦对等点收到其他对等点的数据包,我就认为这个洞已经打好了,并将这个套接字提供给我的应用程序。我在不同的路由器上进行了测试,结果如下:当P1和P2都在非对称NAT(完整/受限锥形)上时,我没有遇到任何问题。当P1=非对称且P2=对称时:-----router-1(对称NAT)+router-

go - 绑定(bind) : cannot assign requested address on UDPclient in local network

因为我找到了很多如何编写go服务器和客户端的示例,所以这可以在一台机器上本地运行。现在我正尝试在我的本地网络中两台PC之间进行通信,一台运行go服务器脚本,一台运行客户端。但是,由于错误,我无法建立连接:Error:listenudp192.168.11.6:10001:bind:cannotassignrequestedaddresspanic:runtimeerror:invalidmemoryaddressornilpointerdereference[signal0xbcode=0x1addr=0x0pc=0x401376]//...当然会贴出我的代码(客户端,出问题的地方):

go - 绑定(bind) : cannot assign requested address on UDPclient in local network

因为我找到了很多如何编写go服务器和客户端的示例,所以这可以在一台机器上本地运行。现在我正尝试在我的本地网络中两台PC之间进行通信,一台运行go服务器脚本,一台运行客户端。但是,由于错误,我无法建立连接:Error:listenudp192.168.11.6:10001:bind:cannotassignrequestedaddresspanic:runtimeerror:invalidmemoryaddressornilpointerdereference[signal0xbcode=0x1addr=0x0pc=0x401376]//...当然会贴出我的代码(客户端,出问题的地方):

java - 在UDP Socket java android上发送和接收数据

我能够通过UDP套接字正确发送我的数据,但是当我收到数据时,它一直在等待接收命令,我不知道是什么原因造成的。请看下面我的代码。我能够在服务器端从android设备正确接收数据,但是当我将数据从服务器端发送到android设备时,它没有接收到。但是当我将数据从服务器发送到任何其他客户端(例如PC应用程序)时,它会正确接收并显示数据。classTaskimplementsRunnable{@Overridepublicvoidrun(){try{StringmessageStr="feed";intserver_port=8888;InetAddresslocal=InetAddress.

java - 在UDP Socket java android上发送和接收数据

我能够通过UDP套接字正确发送我的数据,但是当我收到数据时,它一直在等待接收命令,我不知道是什么原因造成的。请看下面我的代码。我能够在服务器端从android设备正确接收数据,但是当我将数据从服务器端发送到android设备时,它没有接收到。但是当我将数据从服务器发送到任何其他客户端(例如PC应用程序)时,它会正确接收并显示数据。classTaskimplementsRunnable{@Overridepublicvoidrun(){try{StringmessageStr="feed";intserver_port=8888;InetAddresslocal=InetAddress.

c# - 使用 udpClient 连续接收消息

我一直在寻找通过C#中的UdpClient类接收和处理消息的最佳解决方案。有人对此有任何解决方案吗? 最佳答案 试试这段代码://ClientusesasreceiveudpclientUdpClientClient=newUdpClient(Port);try{Client.BeginReceive(newAsyncCallback(recv),null);}catch(Exceptione){MessageBox.Show(e.ToString());}//CallBackprivatevoidrecv(IAsyncResult