草庐IT

接受端

全部标签

networking - 我如何强制 tcp 丢弃缓冲区中最旧的数据段并接受 NS2 中应用程序写入的新数据

我正在尝试调整TCP以在实时通信中正常工作。要做到这一点,规范之一是强制TCP接受应用程序写入的新数据,即使缓冲区已满,这使得TCP有时“不可靠”。这样,应用程序写入调用就不会被阻塞,发送方应用程序的时间也不会中断。我认为NS2中必须有一个选项才能使其成为可能。那么,如何强制TCP丢弃缓冲区中最旧的数据段并接受NS2中应用程序写入的新数据? 最佳答案 你不能。TCP是“可靠流”。任何允许删除数据的功能都与该目标背道而驰,因此不存在此类支持。如果您希望能够丢弃数据,如果您想要“最可靠的传送”而不是“最大努力”,您将不得不切换到UDP之

tcp - EC2 不会接受没有所有 TCP 0.0.0.0/0 的 RDS 传入数据

这似乎与常见情况相反。如果不打开所有TCP到0.0.0.0/0,我的EC2实例将不会接受传入的RDS(MySQL)数据。如果在EC2安全组中我允许所有TCP0.0.0.0/0,则数据库可以正常工作并加载站点。如果我从EC2安全组中删除所有TCP0.0.0.0/0条目,但仍然将Inbound3306(MySQL)打开到0.0.0.0/0,由于数据库连接超时,站点将不会加载。CentOS6/MySQL都在同一地区 最佳答案 我已经解决了这个问题。在EC2安全组中,我从下拉列表中选择了ALLTCP。在地址字段中,我输入了仅分配给我的RDS

Java TCP 服务器在收到 16384 字节 MAC OS 后不接受客户端请求

我正在进行一项实验,看看TCP在java中需要多长时间。首先我启动服务器。然后多次调用函数client_tcp,50000多次。并测量连接、发送和接收1个字节所花费的时间。当服务器收到超过16384个请求(有时会有所不同)时,客户端将无法连接到服务器。我不知道是不是因为服务器套接字中的接收缓冲区大小。在我的例子中,ss.getReceiveBufferSize()=131072。代码如下:publicsynchronizedvoidserver_tcp(intport){ServerSocketss;Socketso;InputStreamis;OutputStreamos;try{s

c# - TCP 服务器一次只接受来自一台 iOS 设备的消息

我使用C#创建一个TCP服务器来连接到iOS设备。但是,我发现它一次只能接受一台iOS设备。我不知道是什么问题。谁能看看是什么问题?IPAddressipadr=IPAddress.Parse(localIP);System.Net.IPEndPointEndPoint=newSystem.Net.IPEndPoint(ipadr,8060);newsock.Bind(EndPoint);newsock.Listen(10);client=newsock.Accept();IPEndPointclientip=(IPEndPoint)client.RemoteEndPoint;whil

c - 如何在 libuv 中获取已接受的 tcp 套接字的文件描述符?

POSIXaccept函数返回已接受的套接字的描述符。然而uv_accept而是返回一个错误指示器。那么如何获取文件描述符呢? 最佳答案 问题可以稍微改写为:Extractingthefiledescriptoroutofahandle具有讽刺意味的是,这是libuv1.0迁移指南的一部分的标题(有关详细信息,请参阅here)。在1.0版之前,不推荐的方法是访问库的内部结构,如下所示:handle->io_watcher.fd从libuvv1.0开始,推荐的方式是使用uv_fileno相反。文档指出:Getstheplatformd

TCP - 对等方如何知道接受失败?

据我所知,一旦我们完成了绑定(bind)套接字的“监听”调用,客户端发起的所有TCP连接就会开始成功,但是,当调用accept时,很有可能accept调用可能会失败(由于内存不可用或文件描述符超出限制等)。我在solaris中运行了一些简单的测试。服务器:1.使用ulimit命令将文件描述符的最大数量减少到8在listento8中设置backlog。听一听。循环调用accept8次然后休眠客户:连接大约8个连接。去sleep测试结果:在客户端,所有连接都通过。在服务器端,accept只有4次通过,4次失败。(这是合理的,考虑到3个文件描述符用于标准,一个用于监听,然后只有4个连接的空间

tcp - 正好接受来自 2 个 IP 地址的 TCP 连接

我正在使用Winsock编写一个TCP服务器应用程序。连接到我的客户端(我没有源,因此无法进行更改)的行为如下:如果它连接并且我关闭连接(因为它是一个不需要的客户端),它将立即重新连接。因此,如果有一个客户端想要连接到我但我不想与之交谈(即我所说的不受欢迎的客户端),我会疯狂地处理我的accept()调用.我想找到一种方法来防止我的accept()调用疯狂旋转。如果只有1个所需的客户端,我可以将我的监听套接字绑定(bind)到该客户端的IP地址而不是INADDR_ANY。但是,唉,有超过1个所需的客户。据我所知,当一组所需IP地址的大小大于1时,无法只允许来自一组所需IP地址的连接。我

c++ - 使用接受的连接作为套接字 (cpp-netlib)

是否有可能通过cpp-netlib获得接受的连接?并像普通TCPBoost.asio套接字一样使用它? 最佳答案 boost::network::http::impl::http_async_connection的socket_成员是私有(private)的,但那将是包含您的TCP套接字的成员正在寻找,所以简短的回答是“否” 关于c++-使用接受的连接作为套接字(cpp-netlib),我们在StackOverflow上找到一个类似的问题: https://s

python - python中的TCP连接。您知道如何在套接字等待接受连接请求时打印计时器吗?

我在套接字中设置了一个定时器。如果它在30秒内没有收到任何连接请求,则程序结束。无论如何,我想将这30秒作为计时器打印到标准输出中,以便用户可以看到还剩多少秒。如果在定时器到期之前有连接请求,我想停止定时器并继续执行代码,就好像什么都没有发生过一样。有什么帮助吗?这是我的代码片段:whileTrue:try:s_TCP.settimeout(30)print("Waitingforaconnection...")s_TCP.listen(1)#I'dliketosetthetimerhereconnection,addr=s_TCP.accept()print("\nConnectio

java - 接受多个端口的 ServerSocket 连接

buyerSocket=newServerSocket(BUYER_PORT);sellerSocket=newServerSocket(SELLER_PORT);SocketclientSocket=null;while(true){clientSocket=sellerSocket.accept();MultiServerThreadx=newMultiServerThread(clientSocket,dat);x.start();clientSocket=buyerSocket.accept();MultiServerThready=newMultiServerThread(c