草庐IT

TCP-Sockets

全部标签

objective-c - iOS TCP/IP 检查连接

我目前正在尝试连接到一个TCP服务器。一切都很好,但如果服务器不可用,应用程序会卡住大约30秒,这不是很好。我已经搜索了一个解决方案,但到目前为止找不到有用的东西。也许你们中有人有检查连接的解决方案?CFReadStreamRefreadStream;CFWriteStreamRefwriteStream;CFStreamCreatePairWithSocketToHost(NULL,(__bridgeCFStringRef)@"IP_SERVER_PATH",6666,&readStream,&writeStream);inputStream=(__bridgeNSInputStre

python通过TCP套接字发送/接收十六进制数据

我有一个以太网访问控制设备,据说可以通过TCP进行通信。我如何通过输入十六进制数据来发送数据包,因为这是我从他们的手册中得到的(每个命令后发送和接收的通信数据包的标准格式)您能否展示一些示例代码或链接以开始使用....standardreturnpacketfromtheterminalSize(bytes)BS(0x08):ASCIICharacter1STX(0x02):ASCIICharacter1LENGTH:lengthfromBStoETX4TID:systemuniqueI.D.1RESULT1DATA:returnedparameterNCHECKSUM:bytesum

vb.net - TCP客户端到服务器通信

我只需要在windows窗体vb.net上寻找一个简单的tcpclient/listner示例。我是一个新手,微软tcpclient/listner类的例子不是我想要的。我只想让tcpclient发送一条消息,让tcplistener获取该消息并将消息发送回“我收到了您的消息”?一点帮助就好了。我有一些代码,但只是将消息发送到服务器,而不是从服务器返回到客户端。任何帮助都将不胜感激。 最佳答案 TCP通信被称为基于流的,这意味着它不处理任何数据包。因此,接收到的消息可以是部分的,也可以集中在一起。例如,您可以发送:Hello!How

c - TCP 客户端-服务器 "bad address"错误(在 C 中)

虽然它似乎已正确实现,但当我使用环回地址(127.0.0.1)建立连接时,它一直向我返回ERROR。除了简单的TCPClient/Server连接外,我还添加了一个额外的案例:如果客户端尝试发送数据但发现连接已关闭,则它也已关闭。我通过检查接收到的数据是否等于0(recv)来执行它。给定错误:CLIENT:WelcometotheClientmodePlease,entertheServer'sIPAddressandPort(eg.192.128.192.01320)127.0.0.12700Connectedtotheserver.NowyoucansendmessagesPlea

tcp - 网络有多不安全?

我刚刚开始编写套接字程序。知道单个UDP数据包具有源端口目标端口和一些代表路由器的MAC地址等。我想知道为什么任何人都不能创建带有虚假信息的自定义数据包并通过互联网发送。我想知道我们的PC有多安全。应该如何保护它? 最佳答案 答案有几个不同的方面。一个是网络依赖于TCP,而不是UDP。这意味着它是面向连接的。您的包裹将被拒绝,除非它看起来是现有连接的一部分(这意味着,除其他外,它还必须具有正确的源IP和端口。并且它必须具有正确的序列号以适应接收窗口)。当然,这仍然可以毫不费力地伪造。但它确实需要您了解一些有关在原始连接上发送的数据包

sockets - 如何检查 TCP 发送缓冲区的容量以确保数据传递

我想向我的TCP接口(interface)添加传送确认。非阻塞写入可以填充发送缓冲区,但如果连接失败,数据可能永远不会到达-同时写入报告数据已收到(由本地套接字)。如果我向堆栈添加额外的确认,我可以验证是否收到了每条数据。我认为ftp可以做到这一点。但我不能借用任何人的代码并且宁愿不实现ack/resend,特别是因为TCP已经做了大部分。我认为如果我能在每次write()之后验证套接字发送缓冲区是否为空,就可以完成。如果没有更多的数据,它应该已经全部交付。我不介意清空缓冲区的延迟。编辑:我知道TCP/socket实现因系统而异,但如果有Berkeley或Linux解决方案,我可能可以

java - 我自己的 http 服务器的 TCP 机器状态单元测试

我使用新的http服务器实现。我将创建单元测试,这将帮助我检查我的TCP连接状态的状态机是否正常工作。当然我需要检查一些简单的事情,比如:我的服务器是在收到RST后切换到closed状态还是切换到established在序列SYN、SYN+ACK、ACK之后。因为这个状态机中可能的路径数量很大,我想知道我应该关注哪些测试。例如,Apache是否有我可以从中获取模式的公共(public)单元测试?第二件事是......我应该从应用程序的角度开始创建这个测试,所以我应该专注于创建我可以使用简单的java套接字模拟的测试,使用像connect这样的命令,发送等 最

sockets - 是否有一个程序可以通过套接字将数据发送到服务器以进行测试?

我有一个简单的套接字服务器,它等待消息并响应。我该如何测试呢?是否有客户端应用程序或其他东西可以帮助我将特定端口上的一些数据发送到服务器,并查看输出?远程登录? 最佳答案 简单的telnet客户端非常适合此类测试。您还可以在Telnet或Raw连接模式下尝试PuTTY。两者都允许您选择要连接的端口。还有类似MicrosoftNetworkMonitor的工具如果您无法直接控制(通过日志)通过线路发送的内容,那么它对于分析协议(protocol)的数据流非常有用。 关于sockets-是否

c++ - 通过以太网电缆 (tcp) 的 rs-232 串行连接

我有一个通过rs-232接口(interface)控制的硬件设备(它是一个超声波脉冲接收器)。我需要编写一个程序来将命令从我的计算机发送到设备。然而,不同寻常的是,该设备没有串行端口(DB-9COM端口),而是有一个RJ45socket(以太网socket)。该设备附带一个适配器,用于将设备上的以太网端口连接到串行电缆,以便与计算机通信。不幸的是我的电脑没有串口——只有以太网口。如果可能的话,我想取消适配器并使用以太网电缆将我的计算机直接连接到设备。这在物理上是可能的——但我不知道如何转换消息协议(protocol)?例如,我的设备没有用于打开TCP套接字的IP地址?到目前为止,我一直

networking - TCP缓冲区在进程内存的地址空间中吗?

我被告知要增加TCP缓冲区大小以便更快地处理消息。我的问题是,无论我为TCP消息使用什么缓冲区(ByteBuffer、DirectByteBuffer等),只要CPU从NIC接收到中断,以处理读取套接字数据的网络请求,操作系统是否会在地址空间之外的内存中维护任何缓冲区请求进程(即正在监听该套接字的进程)或无论CPU以何种方式接收网络数据,它总是只写入进程地址空间的缓冲区,不维护地址空间之外的缓冲区(包括'Recv-Q'和netstat命令的'Send-Q')为了这次交流? 最佳答案 Linux网络栈接收数据的过程有点复杂。我写了一个