草庐IT

tcp_probe

全部标签

C# Tcp 通信线程池与异步调用

我有一个C#应用程序,它监听传入的TCP连接并从先前接受的连接接收数据。请帮助我是否使用Threadpool或Async方法来编写程序?请注意,一旦连接被接受,它不会关闭它并继续从该连接接收数据,同时它接受更多连接 最佳答案 当代码运行时间少于半秒并且没有大量会阻塞线程的I/O时,线程池线程的效果最佳。这与您描述的情况完全相反。此处强烈指示使用Socket.BeginReceive()。在操作级别和框架上都经过高度优化,您的程序使用单个线程来等待所有挂起的读取完成。扩展以处理数千个事件连接是非常可行的。干净地编写异步代码可能非常困难

java - Android - 多线程TCP连接

我一直在寻找问题的答案,但到目前为止,没有任何解决方案能帮助我解决问题。我正在开发一个与作为服务器的另一台设备通信的应用程序。该应用程序向服务器发送查询并接收适当的响应以动态创建fragment。在第一个实现中,应用程序发送了查询,然后等待在单个线程中接收答案。但该解决方案并不令人满意,因为应用程序没有收到来自服务器的任何反馈。服务器管理员说他收到了查询,但他暗示设备发送回答案的速度太快,并且当答案到达时应用程序可能还没有在听。所以我想要实现的是创建单独的线程:一个用于监听,一个用于发送查询。监听器会在我们向服务器发送任何内容之前启动,以确保应用不会错过服务器响应。到目前为止,此实现尚

计算 linux 机器上非空 SNDBUF 的 tcp 套接字总数

Linux服务器上的C程序有没有办法计算具有非空SNDBUF的tcp套接字总数,即非空管道,或者换句话说,当数据传输正在进行时。显然,这必须在“实例”中计算出来……这个数字的近似值就可以了。谢谢。 最佳答案 /proc/net/tcp文件包含所有打开的TCP套接字的列表,并显示发送和接收队列。查找有关此文件格式的官方文档issomewhattricky,但幸运的是它有点不言自明。 关于计算linux机器上非空SNDBUF的tcp套接字总数,我们在StackOverflow上找到一个类似的

networking - TCP Reno 中的慢启动阈值

比方说,超时发生在慢启动阶段结束时。届时,窗口大小将减半。之后,它进入拥塞避免阶段而不是再次进入慢启动阶段。在这种情况下,慢启动阈值是多少?是慢启动的结束还是拥塞避免阶段的开始? 最佳答案 对于一个新的连接,接收窗口大小(rwnd)从A开始,拥塞窗口(cwnd)从B开始。在没有ACK的情况下,发送方不能发送超过cwnd和rwnd的最小值的字节。发送方每次收到ACK时都会增加cwnd。超时发生时,cwnd为X,rwnd为Y,cwnd和rwnd的最小值为Z。因此,超时后,慢启动thershold将是Z/2,或至少1段,cwnd将是1段。

c++ - GMainLoop 和 TCP Listen 线程阻塞

我需要你的帮助。我有主循环GMainLoop和附加的超时回调:MainLoop=g_main_loop_new(NULL,FALSE);g_timeout_add_seconds(Interval,TimeoutCallback,(gpointer)Rec);g_main_loop_run(MainLoop);然后监听套接字:intControlServer::GStart(){intlistenfd;GIOChannel*in;socklen_taddr_len;listenfd=TcpListen(host,port,&addr_len);in=g_io_channel_unix_

c# - 如何在 C# TCP/IP 中的 Socket.Connect 中传递用户名和密码

我有一台机器,我需要连接到它以将数据检索到文本文件中。为此,我有机器的IP地址、端口号、用户名、密码。现在我正在尝试连接到机器但我不知道在哪里传递要在我的C#代码中连接的机器的用户名和密码。请帮帮我。 最佳答案 评论已经给出了答案,总结一下:对于TCP协议(protocol),重要的只是如何连接A和B来实现数据传输。任何超出成功连接的事情都取决于您使用的内部应用程序协议(protocol)您需要服务的描述以及发送和接收的内容您从问候语“这里是客户”开始。这就是我假设的如何传输用户名和密码的方式。例如,在您的“这里是客户”消息之后,服

c - TCP header 和校验和

我需要说明在计算校验和时正确使用TCPheader和伪header。伪header是否需要紧跟在IPheader之后和真正的TCPheader之前?这是我所拥有的:IPHeader*iph=(IPHeader*)(packet+ETHER_SIZE);//ETHER_SIZE==14ipLen=ntohs(iph->totLen)*4;TCPPseudo*tcps=(TCPPseudo*)(packet+ETHER_SIZE+ipLen);TCPHeader*tcp=(TCPHeader*)(tcps+sizeof(TCPPseudo));这是我的标题:typedefstruct__a

c# - 如何通过 TCP 通过 Internet 将 Motion JPEG 发送到 Windows Phone

我想使用全局ip89.232.123.122从我的电脑发送动态JPEG到WindowsPhone手机。如何与那个手机建立连接并通过连接推送mjpeg? 最佳答案 要发送多媒体(如动态JPEG),请使用UDP而不是TCP。在发件人端使用此代码:UdpClientsendFrame=newUdpClient();//yourimageisimg:Bitmapimg=newBitmap("pic.png");//alwayssendimagewhile(true){MemoryStreammemory_Stream=newMemorySt

tcp - 通过多路径 TCP 发送数据

在我的两台debian主机上安装MPTCP后,我想知道如何使用MultiPathTCP发送数据。谢谢 最佳答案 确保您使用mptcp内核重新启动(sysctl-a|grepmptcp应该返回一些结果),然后联系(例如通过iperf)支持mptcp的服务器,例如http://multipath-tcp.org.然后,您应该能够通过cat/proc/net/mptcp查看创建的TCP子流的数量。 关于tcp-通过多路径TCP发送数据,我们在StackOverflow上找到一个类似的问题:

tcp - AIMD TCP 协议(protocol)

考虑通过传输协议(protocol)以1kB数据包传输长流,该传输协议(protocol)(仅)使用AIMD来控制窗口大小。最初,窗口大小为10kB。每次窗口打开到20kB时,窗口中的最后一个数据包被丢弃,它在一个往返时间后被检测到,并重新传输。发送了多少数据包,包括丢弃的第一个数据包? 最佳答案 答案是165包10+11+12+13+14+15+16+17+18+19+20=165如窗口将每次添加一个pkt,直到它得到一个删除pkt的消息。 关于tcp-AIMDTCP协议(protoc