关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决该问题所做的工作。关闭8年前。Improvethisquestion我将在接下来的几个月里做一些小项目,需要一些书籍(最好)或URL来学习一些基本概念。通常,一台PC或嵌入式设备(因项目而异)从外部硬件设备收集一些用户输入或数据,并将其传输到远程PC,后者将其输入数据库。后端将使用Indy套接字组件在Delphi中编
我打开一个TCP套接字并将其连接到网络上其他地方的另一个套接字。然后我可以成功发送和接收数据。我有一个定时器,每秒向套接字发送一些东西。然后我通过强行断开连接(在这种情况下拔出以太网电缆)粗暴地中断了连接。我的套接字仍在报告它正在每秒成功地写出数据。这将持续大约1小时30分钟,最终出现写入错误。什么指定了一个套接字最终接受另一端消失的超时?是操作系统(Ubuntu11.04),是来自TCP/IP规范,还是套接字配置选项? 最佳答案 虽然会中断通信,但拔出网络电缆不会断开TCP连接(1)。您可以重新插入电缆,一旦建立IP连接,所有备份
我想知道bind()在TCP中的确切功能。将本地地址“绑定(bind)”到套接字是什么意思?如果它为套接字分配一个端口号,那我们为什么不在客户端使用它呢?我知道端口是由操作系统在客户端自动分配的,但我并没有全面了解这一切是如何工作的。在bind()之后,我们进行listen()。绑定(bind)与listen()有何关系?listen()会知道bind()已经执行了吗?如果是这样,bind()做了哪些更改以使其为人所知?我的意思是,返回零对成功执行有何帮助?我已经了解了很多定义,但我无法从哪里获得所有这些的详细信息。因此,如果有人能向我解释一下,我将不胜感激。
我想我理解选项的正式含义。在我现在处理的一些遗留代码中,使用了该选项。客户提示RST作为从其一侧关闭连接时对FIN的响应。我不确定我是否可以安全地删除它,因为我不明白什么时候应该使用它。您能否举例说明何时需要该选项? 最佳答案 设置SO_LINGER的典型原因超时为零是为了避免大量连接坐在TIME_WAIT状态,占用服务器上的所有可用资源。当一个TCP连接被干净地关闭时,发起关闭(“主动关闭”)的一端以位于TIME_WAIT中的连接结束。几分钟。因此,如果您的协议(protocol)是服务器启动连接关闭的协议(protocol),并
首先,在同一台服务器上同时使用UDP和TCP有什么问题吗?其次,我可以使用相同的端口号吗? 最佳答案 是的,您可以为TCP和UDP使用相同的端口号。许多协议(protocol)已经这样做了,例如DNS在udp/53和tcp/53上工作。从技术上讲,每个协议(protocol)的端口池是完全独立的,但对于可以使用TCP或UDP的更高级别的协议(protocol),它们默认使用相同的端口编号是惯例。在编写服务器时,请记住TCP套接字的事件顺序比UDP套接字要难得多,因为正常的socket和bind调用你还必须listen和accept。
如果您遇到TCP连接可能太慢而UDP“连接”可能太不可靠的情况,您会使用什么?有各种标准可靠的UDP协议(protocol),您对它们有什么经验?请针对每个回复讨论一种协议(protocol),如果其他人已经提到您使用的协议(protocol),请考虑对他们进行投票,并在需要时使用评论进行详细说明。我对这里的各种选项很感兴趣,其中TCP处于范围的一端,而UDP处于另一端。有各种可靠的UDP选项可用,每个选项都将TCP的一些元素带到UDP。我知道TCP通常是正确的选择,但拥有备选方案列表通常有助于人们得出该结论。Enet、RUDP等建立在UDP之上的东西各有利弊,你用过吗,体验如何?为避
这个问题在这里已经有了答案:WhatisthefundamentaldifferencebetweenWebSocketsandpureTCP?(4个答案)关闭4年前。尽我所能理解TCP套接字和websocket之间的区别,我已经在这些问题中找到了很多有用的信息:fundamentaldifferencebetweenwebsocketsandpureTCPHowtoestablishaTCPSocketconnectionfromawebbrowser(clientside)?等等……在我的调查中,我在wikipedia上检查了这句话:WebsocketdiffersfromTCPi
同一台机器上的两个应用程序可以绑定(bind)到相同的端口和IP地址吗?更进一步,一个应用程序可以监听来自某个IP的请求,另一个应用程序可以监听另一个远程IP的请求吗?我知道我可以让一个应用程序启动两个线程(或分支)以具有相似的行为,但是两个没有任何共同点的应用程序可以做同样的事情吗? 最佳答案 答案因所考虑的操作系统而异。一般来说:对于TCP,没有。您一次只能让一个应用程序监听同一端口。现在,如果您有2个网卡,您可以让一个应用程序监听第一个IP,第二个应用程序使用相同的端口号监听第二个IP。对于UDP(多播),多个应用程序可以订阅
TCP连接上的“对等方重置连接”错误是什么意思?这是一个fatalerror还是只是一个通知或与网络故障有关? 最佳答案 这是致命的。远程服务器向您发送了一个RST数据包,表示立即断开连接,而不是通常的握手。这绕过了正常的半关闭状态转换。我喜欢thisdescription:"Connectionresetbypeer"istheTCP/IPequivalentofslammingthephonebackonthehook.It'smorepolitethanmerelynotreplying,leavingonehanging.B
我是网络编程的新手,也是第一次使用GCDAsyncSocket。我正在尝试实现一个iOS应用程序,其中1台设备充当主机,其他设备(浏览器)连接到它。我正在使用NSNetService/NSNetServiceBrowser来发布/浏览部分。现在,我的客户端/浏览器正确解析主机地址并尝试使用以下代码连接到它:funcnetServiceDidResolveAddress(sender:NSNetService){//ConnectwithServiceif(self.connectWithService(sender,hostname:sender.hostName!)){println