【问题标题】:C# the fastest way to send data sql or (TCPListener)C#发送数据最快的方式sql还是(TCPListener)
【发布时间】:2018-12-28 19:19:59
【问题描述】:

目前,我创建了一个窗口应用程序,它将根据客户端与服务器通信的原则工作。现在我在考虑沟通的速度。问题是:什么会更快:

  1. 将两个应用程序连接到数据库并更改给定表中的值,然后使用 select 下载它们?
  2. 使用 TcpListener 并以这种方式连接应用程序并进行通信? 速度会有很大的不同吗? 它是关于发送消息 1,2,3,4 并基于它们,设置变量的值。

我还想知道一件事。如果我想使用 TcpListener 连接应用程序,那么我将无法使用全局地址,只能在 LAN 中工作。除非你在服务器路由器上设置了 DMZ。

还有其他方法可以发送此类数据吗?我会问一些例子。

使用 TCPListener 的例子:

IPAddress ip = Dns.GetHostEntry(localhost).AddressList[0];
TcpListener server = new TcpListener(ip, Convert.ToInt32(8080));
cpClient client = default(TcpClient);

【问题讨论】:

  • 从设计的角度来看,我会让客户端与服务器应用程序通信,而只让服务器与数据库通信。会不会慢一些?这取决于服务器和数据库的位置。如果数据库在同一台机器上,那么它不会比客户端直接访问数据库慢多少。如果数据库是远程的,那么服务器必须等待数据库的结果才能返回任何内容给客户端。
  • 数据库不是用来通信的,循环池化数据很糟糕。
  • @JacekCz 所以你建议使用不在局域网内的全局 IP 地址与 beetwen 客户端-服务器通信 - 客户端服务器上没有 cinfugre DMZ
  • 如果不了解您要达到的目标的更多细节,就很难回答这样的问题。发送消息的频率,发送消息和设置值之间的延迟有多重要。正如您所提出的,这个问题有很多解决方案 - 以及编写自己的代码 - 可能值得看看现有的框架,如 WCF。
  • 发送 0,5 - 1 秒,不接受延迟:P

标签: c# sockets tcplistener


【解决方案1】:

我决定使用套接字比从数据库读取值快 2-3 倍。我都测试了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-09
    • 1970-01-01
    • 1970-01-01
    • 2021-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多