Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Передача данных по эзернету. / 4 сообщений из 4, страница 1 из 1
22.04.2013, 00:19
    #38234467
webber81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных по эзернету.
Есть прога сообщения по эзернету на Builder.
Подскажите как реализовать что нибудь похожее на с++ visual.(в моей преге нужно будет передать массив с одного компа на другой)
Какие компоненты есть на С++ visual для реализации передачи по эзернету?
Ниже фрагмент проги на билдере.

void __fastcall TCommunicationThread::Execute()
{
MainForm->RichEdit_Log->Lines->Add("communication thread started");

int ibuf = 0;

// create a TWinSocketStream for reading and writing
TWinSocketStream *pStream = new TWinSocketStream(MainForm->ClientSocket1->Socket, 3000);

try
{
// fetch and process commands until the connection or thread is terminated
while (!Terminated && MainForm->ClientSocket1->Active)
{
try
{
pStream->Write(&ibuf, sizeof(ibuf));
MainForm->RichEdit_Log->Lines->Add("sent: " + IntToStr(ibuf));

Sleep(1000);

if (pStream->WaitForData(10000))
{
int received = pStream->Read(&ibuf, sizeof(ibuf));
if (received == 0) // if can’t read in NN seconds
{
MainForm->ClientSocket1->Close();
MainForm->RichEdit_Log->Lines->Add("TWinSocketStream->Read(...) failed");
MainForm->RichEdit_Log->Lines->Add("client socket closed");
continue;
}
// now process the request
//...
MainForm->RichEdit_Log->Lines->Add("received: " + IntToStr(ibuf++));

Sleep(1000);
}
else
{
MainForm->ClientSocket1->Close();
MainForm->RichEdit_Log->Lines->Add("10 seconds elapsed. TWinSocketStream->WaitForData(...) returned without data");
MainForm->RichEdit_Log->Lines->Add("client socket closed");
}
}
catch (Exception &E)
{
MainForm->ClientSocket1->Close();
MainForm->RichEdit_Log->Lines->Add(E.Message);
MainForm->RichEdit_Log->Lines->Add("client socket closed");
}
}
}
__finally
{
if (MainForm->ClientSocket1->Active)
{
MainForm->ClientSocket1->Close();
MainForm->RichEdit_Log->Lines->Add("client socket forcibly closed");
}
delete pStream;
MainForm->RichEdit_Log->Lines->Add("communication thread terminated");
}

}
...
Рейтинг: 0 / 0
22.04.2013, 01:22
    #38234477
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных по эзернету.
webber81Есть прога сообщения по эзернету на Builder.
Где? Тому, что "ниже" до эзернета ещё как минимум два уровня OSI копать. Открой для себя
Windows Sockets. Теперь и с примерами на MSDN.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
23.04.2013, 06:12
    #38235909
webber81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных по эзернету.
Нашел похожий экзампл на visual c++

http://msdn.microsoft.com/en-us/library/windows/desktop/ms737591(v=vs.85).aspx

Подскажите как строку (char *sendbuf) заменить на интовый массив (int globalA[100]).
заранее благодарен.
...
Рейтинг: 0 / 0
23.04.2013, 12:23
    #38236364
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных по эзернету.
webber81заменить
cast-ом:
Код: sql
1.
(char*)globalA


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Передача данных по эзернету. / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]