首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >网络tcp套接字应用程序重试方法

网络tcp套接字应用程序重试方法
EN

Stack Overflow用户
提问于 2015-04-28 12:32:11
回答 2查看 416关注 0票数 0

我正在编写一个基于windows的客户端(c++)和服务器(c#)应用程序,它将通过tcp数据包相互通信。在这里,客户端正在发送数据,而服务器需要确认相同的信息。

为了达到这个目的,我在客户端生命周期内启动了一个'socket()‘和'connect()’调用。在'send()‘和'recv()’调用方法中保留了一些错误检查和重试。请注意,一个客户端将发送一组(多个数据包)数据,并一次退出。

现在我的问题是:

  1. 如果服务器在某些PC上连续运行(例如windows服务),我真的需要考虑连接故障(网络故障)和创建一个新的套接字并相应地从客户端连接吗?
  2. 如果是这样的话,我是否需要考虑从一开始就重新发送数据,还是从上次客户未能通信的地方重新发送数据?

我想知道世界各地的人们用什么方法来处理这种网络应用程序的情况。

EN

回答 2

Stack Overflow用户

发布于 2015-04-28 12:36:52

我真的需要考虑连接崩溃和创建一个新的套接字并相应地从客户端连接吗?

取决于你的数据有多珍贵。如果希望确保它在服务器上结束,并且在发送时发生错误,则可以将其视为“未发送”。

如果是这样的话,我是否需要考虑从一开始就重新发送数据,还是从上次客户未能通信的地方重新发送数据?

这完全取决于应用程序逻辑和应用程序协议的工作方式。从您的描述中,我们无法知道您如何发送数据,以及服务器如何识别它已经看到的数据。

票数 0
EN

Stack Overflow用户

发布于 2015-10-14 11:48:02

我真的需要考虑连接崩溃(网络故障)和创建一个新的套接字并相应地从客户端连接吗?

您当然不需要在连接关闭后创建一个新的套接字;您可以使用现有的套接字重新连接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29919628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档