【发布时间】:2016-09-02 19:47:19
【问题描述】:
抱歉,如果我对这个问题的用语不正确,请多多包涵。 我知道我想要实现什么,只是不确定类/函数等的正确名称是什么。
我需要使用 tcplistener 和 tcpclient 创建一个客户端/服务器应用程序,这将允许我发送字符串和文件......我想。
所以用外行的话来说,我想制作一个服务器应用程序,它会在特定端口上侦听来自客户端的连接。客户端基本上会连接到服务器并说“嘿,我是客户端 172.16.10.12。我将向您发送一个名为 test.txt 的文件,大小为 2330k。该文件的 MD5 哈希为 xxxxxxxxxxx”。
一旦通信发生,我希望客户端将文件“test.txt”发送到服务器;服务器将文件保存到适当的位置,然后生成文件的 MD5 哈希并将其与客户端建议的 MD5 和文件大小进行比较,然后最终向客户端报告“Ok”或“Success”。
如果文件大小或 MD5 不同,则为“失败”。
我不是要求任何人为我做这件事,而是要求有人将我推向正确的方向。我似乎在这里或 youtube 等上找到的所有教程/示例似乎都集中在文件或字符串上。我似乎找不到一个可以同时满足两者的,这是我认为我可能需要的,尽管我可能错了。
我希望一切都有意义!非常感谢您对此的任何帮助。 这是我第一次玩 TCP 功能,之前一直使用 FTP,因为感觉很容易。
【问题讨论】:
-
您可以看到my answer to this question,这将帮助您实施正确的方法来区分您发送的数据(“数据包”)。
-
至于将其拆分成块(如我对 user3815486 的回答的评论中所述),您首先必须向服务器发送文件的确切字节数,然后开始发送 8192 字节块到它,直到你读完整个文件。 服务器每次收到文件部分数据包时都必须这样做:
8192 bytes -> Write to file -> Check if we've received the whole file (match against what the client sent).
标签: vb.net send tcpclient tcplistener