connect()
Это правильный поток?
Ваш алгоритм правильный для UDP.Взгляните на эти сообщения для получения дополнительной информации:
Перфорация с помощью TCP сложнее, чем вы описали. Взгляните на книгу Practical JXTA II, доступную онлайн на scribd, чтобы получить описание проблем обхода NAT, которые вам необходимо решить.