我创建了一个处理TCP连接的库。它存在于服务器和客户端之外。根据MSDN的所有示例和可信来源的建议,我应该在TcpClient和TcpListener之间建立连接,然后将数据从TcpClient发送到TcpListener并接收响应并最终关闭连接。TCP/IP .NET套接字效率
但我采取了不同的方法:首先我没有使用异步连接。其次我没有让客户端发送数据到服务器后等待响应。第三,我没有关闭连接。
我没有选择异步路径,因为我不知道使用它的优点。我没有让客户端等待响应,因为服务器不会响应某些消息。我没有关闭连接,因为我觉得客户端需要很长时间才能重新连接到服务器,以便通过流快速发送一些数据。由于连接未关闭,我仍然希望新客户端能够连接,因此我使现有客户端的流监听器在不同的线程上侦听。由于我不知道如何使用FTP,所以我使用FileStream来读取文件并将它们转换为字节以通过我的TCP连接发送。
我的问题是: 1.为什么要使用异步连接? 2.客户端是否总是收到服务器的响应? 3.如果您知道数据将在前一个数据发送后不久发送,应该关闭连接。 4.让不同的线程处理每个客户端的通信是一个好主意。我使用ThreadPool,即使我不确定线程的执行是如何工作的。它是不同的操作在一个线程中异步执行? 5.使用我的方法通过TCP连接从文件发送读取字节以实现文件共享而不是使用FTP方法有什么缺点吗?