Ваша реклама могла б бути тут!
1 млн переглядів на місяць!
Google Page Rank: 5

Вопрос по созданию TCP соединения в C+ Builder

🔴 12:26 Повітряна тривога в Харків.обл.
Статус: Offline
Реєстрація: 05.12.2007
Повідом.: 5889
  • 🔴 12:26 Повітряна тривога в Харків.обл.
  • #1
Вопрос по созданию TCP соединения в C+ Builder

Всем доброго времени суток.
Пытаюсь создать пару клиент - сервер через TCP. Я электронщик а не программист, потому сильно не пинайте, если что ;) Задача тестовая, но в дальнейшем наработка нужна будет для микроконтроллерного девайса который надо прикрутить в Ethernet-сеть.
Сервер вроде как работает, netstat показывает что нужный порт в режиме Listening.
Проблема с клиентским приложением - при попытке соединения на указаный мною в настройках порт оно кладет с прибором и подключается к серверу через произвольный порт (обычно номера 1080, 1083, 1091). Разумеется, после этого попытка желаемого подключения проваливается с возвратом ошибки #10035 (порт назначения занят). Подскажите где косяк и что это за аномальное поведение?
Исходники сервера:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TcpServer1->LocalHost = Edit2->Text;
TcpServer1->LocalPort = Edit1->Text;
TcpServer1->Open();
if(TcpServer1->Active) {
Memo1->Lines->Add("Server starts at " + TcpServer1->LocalHost + ':' + TcpServer1->LocalPort);
Button2->Enabled = true;
}
else {Memo1->Lines->Add("Server error");};
}

Исходники клиента:

void __fastcall TForm1::Button1Click(TObject *Sender)
{


TcpClient1->RemoteHost = Edit1->Text;
TcpClient1->RemotePort = Edit2->Text;
TcpClient1->Open();
Memo1->Lines->Add("Connecting to " + TcpClient1->RemoteHost + ':' + TcpClient1->RemotePort);
if(TcpClient1->Active){
Memo1->Lines->Add("Connecting...");
};
}
 
  • 🔴 12:26 Повітряна тривога в Харків.обл.
  • #2
Логи или скрины в студию. Скорее всего просто не те методы используешь. По какому примеру делаешь? В клиенте скорее всего нужно использовать другой метод по коннекту. А ты открываешь и на клиенте входящий порт Open. А так как LocalHost и LocalPort ты не задаешь то ставится по умолчанию любой (то что у тебя и происходит). Нужно искать метод который отвечает за удаленное соединение и использование RemoteHost и RemotePort. Connect скорее всего или чтото вроде того.
 
  • 🔴 12:26 Повітряна тривога в Харків.обл.
  • #3
Спасибо за ответ!
Переделал программки на работу через сокеты (компонент Server/Client Socket), все заработало.
Тему пока не закрываю, может еще вопросы возникнут.
 
Назад
Зверху Знизу