Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2009, 15:11   #1
vovunisaev
 
Регистрация: 25.03.2009
Сообщений: 9
По умолчанию Многпотоковый Клиент Сервер

народ помогите кто как может
вот часть кода

<<- 1 ->> при закрытие Сокета на клиенте выкидывает что не может считать данные так как поток уже закрыт

<<- 2 ->> Но если убрать строку отправки клиенту ответа то все работает нормально.

И на последок клиент ни при каких обстоятельствах не получает ответ ну или его прочитать из потока не может Метод чтения клиента ниже
Код:
while (!Terminated && ClientSocket->Connected)
   {
      try
      {
        TWinSocketStream *pStream = new TWinSocketStream(ClientSocket, CLIENTWAITTIME);
if (pStream->WaitForData(60000))
            {
<<- 1 ->>int a = pStream->Read(buffer, sizeof(buffer));
              if (a == 0){
                   ClientSocket->Close();
                }else {
<<- 2 ->>    a = pStream->Write(buffer, sizeof(buffer));
                  Form1->Memo1->Lines->Add(AnsiString("(Client) ") +AnsiString(buffer) );
                }
               //--------------------------------//
             } else {  ClientSocket->Close();}}
         __finally
         {
            delete pStream;
         }      }     catch (...)      {  HandleException();}}

В событии ОнРиАД

AnsiString s="";
if (ClientSocket1->Active == true)
      if (Socket->Connected == true){
         Socket->ReceiveBuf(buffer, sizeof(buffer));
         s=buffer;
         Memo1->Lines->Add( AnsiString("(Server) ") +s );
         Memo1->Lines->Add("Active == true Connected == true");
      }

Последний раз редактировалось MaTBeu; 25.03.2009 в 22:58.
vovunisaev вне форума Ответить с цитированием
Старый 25.03.2009, 15:19   #2
Mega
Пользователь
 
Регистрация: 14.03.2009
Сообщений: 41
По умолчанию

Пиши с помощью винсок
Mega вне форума Ответить с цитированием
Старый 25.03.2009, 16:20   #3
vovunisaev
 
Регистрация: 25.03.2009
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Mega Посмотреть сообщение
Пиши с помощью винсок
Ты бы еще свою компоненту предложил написать
vovunisaev вне форума Ответить с цитированием
Старый 25.03.2009, 16:26   #4
Mega
Пользователь
 
Регистрация: 14.03.2009
Сообщений: 41
По умолчанию

а что???эти все компоненты фигня.пиши сам,сложнее ,но понятнее
Mega вне форума Ответить с цитированием
Старый 25.03.2009, 16:28   #5
vovunisaev
 
Регистрация: 25.03.2009
Сообщений: 9
По умолчанию

Ты не понял Мне здесь ошибку найти нужно.
vovunisaev вне форума Ответить с цитированием
Старый 26.03.2009, 14:13   #6
vovunisaev
 
Регистрация: 25.03.2009
Сообщений: 9
По умолчанию

Нашел у меня В свойствах ClientSocket стояло ctBlocking
vovunisaev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
БД клиент-сервер [62]Gambit Помощь студентам 5 25.05.2010 10:49
Клиент-сервер-клиент Кронос Работа с сетью в Delphi 3 24.08.2007 07:57
Клиент-Сервер snakesoft Работа с сетью в Delphi 8 20.07.2007 17:34
клиент сервер Oksana1988 Фриланс 3 10.04.2007 12:12