【问题标题】:What is the advantage for using TcpClient & TcpServer over Socket [duplicate]在 Socket 上使用 TcpClient 和 TcpServer 有什么好处 [重复]
【发布时间】:2016-06-06 16:58:11
【问题描述】:

两台计算机必须通过 TCP/IP 通信才能同步某个流程。在Socket 对象上使用包装类TcpClientTcpServer 有什么好处?

我已经使用第一个对其进行了编程,但不知何故,这对我来说似乎很复杂,并且仅使用后者就可以更容易解决。 对我有什么好的建议吗?

【问题讨论】:

  • @Evk 我应该更努力地搜索 :)
  • TcpClient 和 TcpServer 继承了套接字类,除了构造函数不同之外,这三个都是相同的。 socket是TcpClient和TcpServer中的客户端。 TcpClient 和 TcpSocket 是套接字类的包装器,并隐藏了很多属性。 Theat 是您经常需要使用客户端的原因。

标签: c# sockets tcpclient tcpserver


【解决方案1】:

这个想法是,使用包装类,您可能需要的大部分代码已经为您编写好了。

使用包装器的优点应该是:

  • 验证已完成
  • 编写的代码更少
  • 已经过广泛测试
  • 代码重用应在有意义的地方受到称赞

自己滚动的优势:

  • 你得到你想要的
  • 您可以创建自己的语法

自己滚动的缺点:

  • 您必须编写所有代码,包括测试
  • 如果你和我一样,你可能没有编写包装器的专家知识渊博
  • 因此,生成的代码可能比包装器中的代码效率低。

决定权始终在您手中。毕竟,如果你愿意,你实际上可以重写整个框架,但你为什么要费心呢?

您需要查看包装器为您提供的内容,并自行决定它是否提供了您需要的内容。如果是这样,那么我会说使用它。如果它不能满足您的要求,请编写您自己的或扩展包装器,以便它执行您想要的操作。

希望对您有所帮助。

【讨论】:

  • 我不想重写课程。 :) 使用包装类TcpClientTcpServer 的替代方法是使用Socket 而不是我自己写的。它们在连接、发送和接收数据方面具有几乎相同的功能。我觉得Socket 类完全可以实现双向通信协议
  • 正如我在帖子中所说,您必须做出明智的决定。如果套接字满足您的需求,请使用它。如果它不能满足您的需求,您需要使用包装器或编写自己的代码来提供附加功能。遗憾的是,只有您自己可以确定套接字是否会做您想做的事情......
  • 很好的答案,也许不是太技术性,但方法清晰合理。我对此投了赞成票!
猜你喜欢
  • 2012-03-22
  • 2017-08-20
  • 1970-01-01
  • 1970-01-01
  • 2016-08-15
  • 2013-08-18
  • 2015-11-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多