草庐IT

TCP-Sockets

全部标签

C++ TCP服务器类设计

我正在用C++(win32/linux)开发TCP服务器,它可以满足多个客户端的需求。服务器用于视频流。客户端向服务器请求视频,服务器从与摄像头连接的网关获取视频。我卡在了设计课上。我找到了三个课同行session和连接管理器。所以这里ConnectionMgr负责管理其他的Class。我想要你对此的反馈。Peer和session需要有什么信息;Peer和session是如何关联的哪些信息需要在这里建模。如何做session维护者。管理多个客户端需要线程,线程可能需要这些信息。请提供您的反馈,以便我可以升级我的设计。 最佳答案 从头

networking - 为什么我的 PC 中的 TCP 消息以 590 字节的帧形式出现

当我通过代理服务器使用firefox向网页发出请求时,我正在分析wireshark日志文件。以下是连接建立的详细信息:当我在从我的PC到代理服务器的[SYN]消息的TCP段详细信息中打开选项分支时,我注意到“最大段大小”-它说1460字节类似地,从代理服务器到我的PC的[SYN,ACK]消息的最大段大小eof-它表示1460字节建立TCP连接后,从代理服务器发送到我的PC的每个TCP帧不应该是1460字节吗?我很困惑为什么它们是590字节。请告知如何设置590尺寸 最佳答案 一个合理的解释是590结果是特定连接的路径MTU。换句话说

c# - 在 C# 中通过 TCP 发送 XML 格式的消息

我有一个C#TCP聊天程序。目前,我已经使用字符串格式化发送的消息,即“登录”消息以“3”开头,然后是“U:”,然后是用户名等。我认为这种方法在某种程度上是非常粗糙的,它不是真正可读的,也不是标准化的。在早期的研究中,我读到可以使用XML格式化我的消息,但我不知道从哪里开始。我是否只制作一个字符串生成器并附加它的标签,如.append(""+message)? 最佳答案 处理此类问题的最常用方法是使用序列化。序列化是将内存中的对象转换为可以轻松“通过网络”流式传输的格式的过程,反序列化是将序列化格式转换回对象的逆过程。.NET对开箱

android - 连接被拒绝 : IOException in android TCP/IP

我是android的新手。我想问问是否有人知道为什么当我尝试在两个Android设备之间建立TCP/IP连接时出现此“连接被拒绝”IOException。我尝试对这两个设备执行ping操作,它们都在响应。有谁请...提前致谢...E/TCP_IPconnectthread(7466):java.net.ConnectException:/192.168.4.100:8080-ConnectionrefusedE/TCP_IPconnectthread(7466):atorg.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSoc

perl - 已建立 TCP 连接但套接字不发送/接收数据

我正在编写一个简单的TCP客户端和服务器Perl脚本。截至目前,我使用wireshark验证了3次TCP握手,并建立了连接。但是当我尝试发送或接收数据时,什么也没有发生。问题:1)客户端和服务器之间的主要区别仅在于服务器添加了一个LISTEN参数,使其能够监听传入的连接?2)接收和显示数据之间是否缺少任何步骤?3)当程序第一次执行while循环时,至少应该发送硬编码字符串“$response”吗?4)shutdown($sock,1)和sleep(1)在此实现中有何不同?让套接字休眠是否可以,还是我应该使用shutdown($sock,1)向客户端/服务器发出数据已发送的信号?在检查w

tcp - WebSocket 分片和 TCP 分片有什么区别?

我正在阅读有关Websocket的文章,我看到该协议(protocol)有数据碎片(帧),WebSocket消息由一个或多个帧组成,但这不是TCP(数据碎片)所做的?我很困惑。 最佳答案 数据传输上下文中的分段只是意味着将原始数据拆分为更小的部分以进行传输并稍后(例如在接收方)再次组合这些片段以重新创建原始数据。如果底层无法处理较大的消息,或者如果较大的消息会导致性能问题,通常会进行分片。此类问题可能是因为如果丢失一条大消息并且需要重复而不是仅一小段消息,则代价更高。或者,如果传输一条大消息会阻塞较小消息的传递,则可能会出现性能问题

python - 通过 TCP 套接字 python 发送一个字节

我正在尝试在python3.x中编写一个函数,该函数返回一个字节的数据以通过TCP连接发送。我要发送的数据是一个0-100的无符号整数。我正在使用sys.getsizeof(data)检查数据使用的字节数,但我没有遇到sys.getsizeof(data)==1.假设data=10我尝试了几种不同的方式来存储一个字节:1)struct.pack('>b',10)2)bytes(10),bytes([10])3)0x104)bytearray(10)5)b'10'所有这些都返回了超过两位数的字节大小。我正在寻找一种在Python中通过TCP套接字发送单个字节的方法。

java - 谷歌应用引擎 TCP 连接失败

部署到谷歌应用引擎的SpringBoot应用程序和对端点的请求按预期使用硬编码文本正确响应。除了公开的默认端口8080外,还公开了另一个TCP:8595,跟踪设备会将数据发布到该端口。问题是当我测试与telnetprojectid.appspot.com8595建立tcp连接时,我得到了这个响应ConnectingToprojectid.appspot.com...Couldnotopenconnectionto主机,在端口8595上:连接失败,认为本地连接没有失败。应用引擎中托管的应用程序如何公开端口?免责声明:我是AppEngine和GCP的新手 最佳答

c - 为什么在进行远程过程调用时 UDP 优于 TCP?

我正在阅读有关RPC的内容。博客,https://www.cse.iitk.ac.in/users/dheeraj/cs425/lec26.html,建议使用UDP而不是TCP,在进行远程过程调用时,为什么UDP比TCP更受欢迎? 最佳答案 在进行远程过程调用时,UDP通常不优于TCP。事实上,大多数RPC技术(如CORBA、XML-RPC、SOAP、JavaRMI等)的实现都使用TCP而不是UDP作为底层传输。TCP在这里是首选,因为与UDP不同,它已经关心可靠性(处理数据包丢失、重复、重新排序)并且还可以轻松透明地处理任意大小的

sockets - 远程关闭后 TCP 套接字的状态是什么?

假设我已经接受()到我的服务器(在Solaris上运行)的连接并且客户端关闭了连接。在我在服务器端close()之前,服务器端套接字的套接字(在netstat类别中)的状态是什么?绑定(bind)了吗? 最佳答案 会是CLOSE_WAIT,看tcp状态图,例如在http://en.wikipedia.org/wiki/File:Tcp_state_diagram_new.svg 关于sockets-远程关闭后TCP套接字的状态是什么?,我们在StackOverflow上找到一个类似的问题