ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #2251  
Старый 05.02.2009, 17:08
Аватар для Glazz
Glazz
Участник форума
Регистрация: 09.08.2008
Сообщений: 139
Провел на форуме:
560332

Репутация: 15
По умолчанию

Вроде и сервер работает.

Только вот как реализовать получение сообщений в любое время?

Допустим я отпарвил на сервер текст. Чтоб сервер его принял , необходимо там сделать recv(); , а если сервер не ждет? Допустим чаты же как то делают.
 
Ответить с цитированием

  #2252  
Старый 05.02.2009, 17:20
Аватар для awdrg
awdrg
Участник форума
Регистрация: 30.01.2009
Сообщений: 196
Провел на форуме:
505362

Репутация: 66
Отправить сообщение для awdrg с помощью ICQ
По умолчанию

Нужно сделать рекурсию на сервере.
Допиши в конце кода сервера, перед ретурном:
Код:
 main();
не уверен, но скорее всего будет работать
 
Ответить с цитированием

  #2253  
Старый 05.02.2009, 17:34
Аватар для groundhog
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

Glazz, сервер на то и сервер, что он всегда ждёт соединения, он случает какой-то порт, принимает на него соединение, запускает отдельный поток для обработки этого соединения, и продолжает слушать порт...
 
Ответить с цитированием

  #2254  
Старый 05.02.2009, 17:55
Аватар для Glazz
Glazz
Участник форума
Регистрация: 09.08.2008
Сообщений: 139
Провел на форуме:
560332

Репутация: 15
По умолчанию

Цитата:
Сообщение от groundhog  
Glazz, сервер на то и сервер, что он всегда ждёт соединения, он случает какой-то порт, принимает на него соединение, запускает отдельный поток для обработки этого соединения, и продолжает слушать порт...
а вот еще - если сервак принял чела , допустим идет обмен всяким , ну займет секунд 30. Второй клиент будет ждать это время? а если очередь из 10 человек? вот как эта многопоточность еще делается?
 
Ответить с цитированием

  #2255  
Старый 05.02.2009, 17:59
Аватар для groundhog
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

почитай про функцию accept из WinSock. Никто ничего не ждёт...
 
Ответить с цитированием

  #2256  
Старый 05.02.2009, 18:23
Аватар для Glazz
Glazz
Участник форума
Регистрация: 09.08.2008
Сообщений: 139
Провел на форуме:
560332

Репутация: 15
По умолчанию

Цитата:
Сообщение от groundhog  
почитай про функцию accept из WinSock. Никто ничего не ждёт...
Ну читал , он очередь из листена разргребает , ну ...
Видать я не правильно объясняю.

Допустим вот код:
Код:
 
while((client_s = accept(s, (sockaddr *)&client_addr,&client_addr_size)))
    {
       send();
      ....
    }
Ведь в таком случае каждый клиент будет ждать так?
А как сделать , чтоб одновременно могло обслуживаться 2 иболее человека?
Я конечно быдлокодер , я начинал изучать Си++ , потом мне сказали лучше Си , и вот я ООП си++ Р. Лафоре половину прочел и начал писать на си.

Может мне нужно Многозадачность?
 
Ответить с цитированием

  #2257  
Старый 05.02.2009, 19:10
Аватар для xismyname
xismyname
Познающий
Регистрация: 07.09.2008
Сообщений: 79
Провел на форуме:
272452

Репутация: 10
По умолчанию

Цитата:
Сообщение от awdrg  
Нужно сделать рекурсию на сервере.
Допиши в конце кода сервера, перед ретурном:
Код:
 main();
не уверен, но скорее всего будет работать
ЛОЛ )))) , скажу правду,более тупую вещь я еще не слышал.
 
Ответить с цитированием

  #2258  
Старый 05.02.2009, 19:15
Аватар для xismyname
xismyname
Познающий
Регистрация: 07.09.2008
Сообщений: 79
Провел на форуме:
272452

Репутация: 10
По умолчанию

Цитата:
Сообщение от Glazz  
Ну читал , он очередь из листена разргребает , ну ...
Видать я не правильно объясняю.

Допустим вот код:
Код:
 
while((client_s = accept(s, (sockaddr *)&client_addr,&client_addr_size)))
    {
       send();
      ....
    }
Ведь в таком случае каждый клиент будет ждать так?
А как сделать , чтоб одновременно могло обслуживаться 2 иболее человека?
Я конечно быдлокодер , я начинал изучать Си++ , потом мне сказали лучше Си , и вот я ООП си++ Р. Лафоре половину прочел и начал писать на си.

Может мне нужно Многозадачность?
Да, тебе нужно копать в стороны многопоточности.

Есть два решения,создать асинхронные сокеты или многопоточность.Первое долго объяснять, второе покажу на примере :

Код:
while(1)
{
     SOCKET childSocket = accept(LocalSocket,NULL,NULL);
     if( childSocket != -1 )
     {
          CreateThread(....);
     }
}

Насчет CreateThread() прочти в мсдн.
 
Ответить с цитированием

  #2259  
Старый 05.02.2009, 22:48
Аватар для Glazz
Glazz
Участник форума
Регистрация: 09.08.2008
Сообщений: 139
Провел на форуме:
560332

Репутация: 15
По умолчанию

Цитата:
Сообщение от xismyname  
Да, тебе нужно копать в стороны многопоточности.



Насчет CreateThread() прочти в мсдн.
Читать же на msdn.microsoft.com ? у меня проблема - не могу зайти по домену на сайт , тока по ипу. И т.е. карртинки все н егрузятся и т.д. :\ пишет - невозможно найти сервер.
 
Ответить с цитированием

  #2260  
Старый 06.02.2009, 13:10
Аватар для BlackSilver
BlackSilver
Познающий
Регистрация: 30.01.2009
Сообщений: 30
Провел на форуме:
75077

Репутация: 14
По умолчанию

Цитата:
Сообщение от Glazz  
Читать же на msdn.microsoft.com ? у меня проблема - не могу зайти по домену на сайт , тока по ипу. И т.е. карртинки все н егрузятся и т.д. :\ пишет - невозможно найти сервер.
Купи на базаре диск и поставь себе свой msdn. Пригодится.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP, PERL, MySQL, JavaScript 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Форумы 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ