Извините, если моя терминология неверна с этим вопросом, но нести меня. Я знаю, чего хочу достичь, просто не знаю, какие имена принадлежат классам/функциям и т. Д.отправка обоих файлов и строк через tcp в vb.net
Мне нужно сделать клиент/серверное приложение с помощью tcplistener и tcpclient, что позволит мне отправлять как строки, так и файлы ... думаю.
Так что, говоря языком непрофессионала, я хочу создать серверное приложение, которое будет прослушивать подключения от клиента на конкретном порту. Клиенты будут, по существу, подключаться к серверу и сказать «эй, я клиент 172.16.10.12. Я собираюсь отправить вам файл с именем test.txt размером 2330 тыс. Хэш хэш-файла MD5 - это ххххххххххх».
Как только это сообщение произошло, я хочу, чтобы клиент отправил файл test.txt на сервер; сервер, сохраняющий файл в соответствующем месте, прежде чем генерировать хеш-файл MD5 файла и сравнив его с MD5 и размером файла, предложенным клиентом, прежде чем, наконец, сообщит клиенту «Хорошо» или «Успех».
Если размер файла или MD5 отличается, это будет «Fail».
Я не прошу кого-либо сделать это для меня, но для кого-то, кто подталкивает меня в правильном направлении. Все учебники/примеры, которые, как мне кажется, находятся здесь, или youtube и т. Д., Похоже, сосредоточены на файлах или строках. Кажется, я не могу найти тот, который будет обслуживать и то, и другое, что мне кажется нужным, хотя я могу ошибаться.
Я надеюсь, что все имеет смысл! Огромное спасибо за любую помощь в этом. Это первый раз, когда я играл с функциями TCP, всегда используя FTP раньше из-за воспринимаемой легкости.
Вы можете увидеть [** мой ответ на этот вопрос **] (http://stackoverflow.com/a/35240061/3740093), который поможет вам осуществить правильный способ дифференцировать данные (_» пакеты "_), которые вы отправляете. –
Что касается разделения его на куски (как упоминалось в моем комментарии к запросу пользователя3815486), вам сначала нужно отправить серверу точное количество байтов, которое есть в этом файле, тогда вы начнете отправлять ему 8192 байтовых фрагментов, пока не увидите прочитайте весь файл. ** Сервер ** должен будет делать это каждый раз, когда он получает пакет файловой части: '8192 байта -> Запись в файл -> Проверьте, получил ли мы весь файл (совпадение с тем, что отправил клиент)'. –