Для Delphi существует огромная куча компонентов для работы с сетью. К примеру Indy. Я лично предпочитаю чистый Win API а именно библиотеку winsock.
С протоколами надо разбираться. И их реализациями. Хотя многие пытаются без этого обойтись, и после удивляются почему их приложение не работает.
UDP и TCP протоколы совершенно разные.
Цитата:
Насколько я знаю, обоим программам для обмена данными нужны IP-адреса друг друга (или хотя бы одной?)
Вначале они могут не знать IP адрес. Есть широковещательная посылка.
Клиент посылает пакет всем компьютерам в сети сервер его ловит опознает клиента. Тем самым запоминает его IP адрес. И отправляет ответ. Тем самым каждая программа клиент и сервер знает IP друг друга.
Если у тебя два компьютера в двух разных локальных сетях, то тут используется сервер посредник который находится в интернете.
Цитата:
Как понимаю, программе нужно "уметь" обработать приём и передачу пакетов и какие-нибудь связывания-развязывания?
Есть понятие соединение. Но оно есть не во всех протоколах. К примеру в UDP нет, а в TCP есть.
А вот про обработку пакетов. Это тоже заблуждение. Пакеты есть в UDP. А вот в TCP передача потоковая. И надо обрабатывать не пакеты, а сегменты данных.
Цитата:
TCP/IP-соединение или отправить с одного на другой UDP-посылку простыми способами (без специальной настройки файрвола) не получится.
Правда торент-клиенты как-то умудряются организовывать раздачу без настройки файрвола, но как они это делают, я не знаю :(
Во первых фаервол настраивать не надо обычно он уже настроен в 99 из 100.
Вот почитайте про то как устроен NAT и способы его преодоления.
http://www.cyberguru.ru/networks/networ ... tails.html А во вторых торрент-клиенты умеют обходить фаерволы для этого у них есть разные способы. Начиная договорится с фарволом при помощи UPNP или NAT-PMP. Так и просто работать на обратной связи. Так и маскироваться под Http.