草庐IT

tcp_client

全部标签

C# TCP 读取所有数据 - 服务器端问题

我正在使用C#v4.0(.NetFrameworkv4)开发一个简单的TCP服务器应用程序:我要完成这两个步骤:客户端发送message1给服务器(客户端可以是.net或java应用)服务器将message2发送回客户端作为对message1的响应我的服务器有问题,它无法正确读取message1,除非我使用这些不适当的解决方案之一:1)使用只有1字节缓冲区的MemoryStream(有效但速度慢):while(true){TcpClienttcpClient=tcpListener.AcceptTcpClient();NetworkStreamnetworkStream=tcpClie

sockets - 从应用程序重置 TCP 套接字连接

如何使用Perl或C中的IO::Socket::INET在应用程序级别重置一个accepted套接字?有一个程序在TCP端口上绑定(bind)、监听、接受客户端连接,之后它读取和写入一些数据。如果我只是简单地关闭或关闭套接字,TCP层会正常终止(使用FIN数据包),而不是生成RST数据包。 最佳答案 您没有指定您正在使用的确切操作系统。我发现Linux确实有一个API调用可以重置TCP连接,我不知道它的可移植性如何。方法是在已连接的套接字上使用connect系统调用,但这次使用AF_UNSPEC系列。以这种方式重置套接字后,甚至可以

linux - 在读取所有数据之前写入 TCP 套接字的行为

我一直在为我的一些应用程序编写小型特定用途的HTTP服务器,我注意到,如果您在read()之前write()全部可用数据,字节未正确发送。例如,在read()ingonly我的浏览器发送的请求行(GET/HTTP/1.1\r\n)之后,我写入():HTTP/1.1200OK\r\nConnection:close\r\rContent-Type:text/html\r\n\r\n(someHTMLstuff)此write()的Wireshark捕获:'\n'字节和Content-Typeheader都不见了!(Wireshark始终在HTTPheader部分显示'\n'字节,如果它们存

Python TCP 套接字 : How to know if a specific connection has sent information

我有一个多线程Python3应用程序,它在线程#1上接受TCP套接字通信。线程#2将检查所有当前连接是否有任何要接收的信息,然后采取相应行动。所以,目前我有一个名为all_connections的列表,它是已接受的套接字连接对象的列表。使用forconnectioninall_connections:我可以遍历所有连接对象。我知道我使用conn.recv(256)来检查是否有任何准备好在此套接字上接收。这会阻止循环直到有东西可以接收吗?我已经预先设置了conn.setblocking(1)尽管我不确定这是否是解决它的最佳方法:下面是一些示例代码:线程1self.all_connecti

我可以使用 inet_pton 为我的 TCP 套接字服务器设置文本地址,例如 "device1.local"吗?

我用C编写了一个TCP套接字,它需要与通过本地网络连接到此地址的移动应用程序一起使用:“device1.local:6666”。我找到的每个使用inet_pton()设置服务器地址的示例都有一个如下所示的IPV4地址:192.168.1.34,或者一个IPV6地址看起来像这样:2001:db8:8714:3a90::12。如果我希望我的客户端远程登录到“device1.local”而不是数字或十六进制地址,我应该指定哪种格式?如何设置我的TCP套接字服务器来响应该地址?这行不通:local_socket=socket(AF_INET6,SOCK_STREAM,0);if(local_s

python - TCP 线程 python

我正在通过Python学习一些网络知识,并提出了TCPServer多线程的想法,因此我可以连接多个客户端。问题是我只能连接一个客户端。importsocketimportosimportthreadingfromtimeimportsleepfromthreadingimportThreads=socket.socket(socket.AF_INET,socket.SOCK_STREAM)print('SocketPreparado...')defMain():host='127.0.0.1'port=5000s.bind((host,port))print('Enlazelisto.

java - 带有 https 的 tomcat 在直接 TCP 连接时获得 CLOSE_WAIT

我使用tomcat8.5.4在端口443上构建一个基于https的服务器,如下所示:94但是一个client使用tcp去连接8000端口,然后很快就关闭了tcp连接。在此之后,在我的服务器中,连接处于CLOSE_WAIT状态,更重要的是,CPU增长并且org.apache.tomcat.util.net.TLSClientHelloExtractor对象被gc触发器快速创建:root@nts32:/home/vcloud/apache-tomcat-8.5.4/logs#jmap-histo14|headnum#instances#bytesclassname-------------

sql-server - TCP 提供程序 : The semaphore timeout period has expired in SSIS

有时,在将SSIS中的数据从SQLServer加载到SQLServer2016(使用数据流)期间,我会遇到以下错误:SE[[209]]Error:SSISErrorCodeDTS_E_OLEDBERROR.AnOLEDBerrorhasoccurred.Errorcode:0x80004005.AnOLEDBrecordisavailable.Source:"MicrosoftSQLServerNativeClient11.0"Hresult:0x80004005Description:"Communicationlinkfailure".AnOLEDBrecordisavailabl

tcp - 为什么 XMPP 消息有时会在移动设备上丢失

Thisquestion询问当移动设备没有稳定连接时如何处理丢失XMPP消息,但我真的不明白为什么包首先会丢失。我记得曾经读过,当连接突然丢失时,服务器和客户端之间的流保持打开状态,只有在连接超时时才会被销毁。这意味着服务器通过流发送到达的消息,即使断开连接的客户端无法再接收这些消息。有一段时间我对这个解释很满意,但开始怀疑为什么核心XMPP会缺少如此重要的功能。最后我注意到,确保XMPP协议(protocol)中的正确传输是多余的,因为底层TCP应该已经确保消息的正确传输,但是由于丢失消息引起的各种问题,这似乎不是真的。为什么TCP不足以确保消息正确发送或失败,以便服务器知道它必须稍

tcp - 设置 ASIO no_delay 选项

我在asio套接字上设置no_delay选项时遇到问题。以下代码运行良好,除了延迟。我的服务器仅在5000毫秒过期后才接收消息。#include#includeusingnamespaceboost::asio;structClient{io_servicesvc;ip::tcp::socketsock;Client():svc(),sock(svc){ip::tcp::resolverresolver(svc);ip::tcp::resolver::iteratorendpoint=resolver.resolve(boost::asio::ip::tcp::resolver::qu