Статус:
Offline
Реєстрація: 05.12.2007
Повідом.: 5889
Реєстрація: 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...");
};
}
Всем доброго времени суток.
Пытаюсь создать пару клиент - сервер через 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...");
};
}