Передача файлов и передача сообщений из одной системы в удаленную систему через Интернет

Какой из них (TCP/UDP) лучше всего подходит для отправки файлов с клиента на удаленный сервер через Интернет? i.e. Какой из них является быстрым и надежным в соответствии с моим следующим требованием.

У меня есть два требования в основном

1. Sending Files from Client to Server (Daily Once)
2. In Client system running one software, its having different product information, 
   latest packet Time, Product Status, etc . 
   This information is updated every one second. 
   My problem is, To know the Client status at server.

 I am not able to decided which design is best of my requirement. They are
   A.Using TIdTCPClient & TIdTCPServer 
   B.Using TIdTCPClient & TIdCmdTCPServer
   C.Using TIdCmdClient & TIdTCPServer
   D.Using TIdCmdClient & TIdCMDTCPServer

Пожалуйста, объясните мне, какой дизайн лучше всего и как его реализовать на примере.


person Vijay Kumar    schedule 18.10.2012    source источник
comment
Вы также можете использовать TIdHTTP и TIdHTTPServer для загрузки файлов и другой информации. HTTP имеет некоторые преимущества по сравнению с реализациями протокола ad-hoc: заголовок длины содержимого, аутентификация, дружественность к брандмауэру, широкая поддержка и понимание и т. д.   -  person mjn    schedule 18.10.2012
comment
Да, вы правы, но есть один момент: передача файлов по HTTP медленнее, чем по TCP. После теста было решено использовать TCP. Еще одно ограничение — ограничение на размер файла. Он поддерживал размер до 4,5 МБ, но в моем случае размеры файлов превышали 5–10 МБ. Также мы можем использовать FTP, но некоторые клиенты работают за прокси и брандмауэром.   -  person Vijay Kumar    schedule 19.10.2012


Ответы (1)


TCP/IP медленнее, но гарантирует, что вы не потеряете ни одного пакета без реализации этого в своем приложении.

UDP быстрее, но у вас нет гарантии, что пакет прибудет, и вы должны реализовать какое-то подтверждение

В вашей ситуации я думаю, что TCP является лучшим, и TIdTCPClient с TIdTCPServer сделает свое дело.

Опубликуйте код, если вы застряли.

person opc0de    schedule 18.10.2012