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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2018, 17:04   #11
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Сообщение от Vidoc3000 Посмотреть сообщение
OnAccept сделать...
На OnAccept вы можете только проверить допустимый IP адрес клиента или нет. Или в то время подключился или не в то время.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .

Последний раз редактировалось Pavia; 04.04.2018 в 19:06.
Pavia вне форума Ответить с цитированием
Старый 05.04.2018, 06:33   #12
Vidoc3000
 
Регистрация: 29.03.2018
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
На OnAccept вы можете только проверить допустимый IP адрес клиента или нет. Или в то время подключился или не в то время.
А адекватных ответов нет? Зачем свой ответ кучу раз редактировать? 2 "профессионала" по набиванию постов...
Я же конкретно попросил пример или ссылку на статью, я не просил тут разводить дискуссию. Если вы все знаете, то какой толк от слов? Показал пример и все. Или это так сложно кинуть на форму ServerSocket и написать пару строк?

P.S. Ирония в подписях: Один за других ни чего не хочет делать, а другой хочет чтобы все сами отвечали на свои вопросы...
Vidoc3000 вне форума Ответить с цитированием
Старый 05.04.2018, 08:11   #13
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от Vidoc3000 Посмотреть сообщение
А адекватных ответов нет?
То, что вы не поняли ответов не делает их неадекватными.

Цитата:
Сообщение от Vidoc3000 Посмотреть сообщение
Зачем свой ответ кучу раз редактировать?
Кто вам сказал про кучу? Исправления опечатки такую же запись делает, не знали?

Цитата:
Сообщение от Vidoc3000 Посмотреть сообщение
2 "профессионала" по набиванию постов...
1 идиот, не в состоянии на простейщую логику.

Цитата:
Сообщение от Vidoc3000 Посмотреть сообщение
Я же конкретно попросил пример или ссылку на статью, я не просил тут разводить дискуссию.
Дискусии тут нет. Какую статью вы хотите? Она вся умещается в пару предложений в моих предыдущих постах.

Цитата:
Сообщение от Vidoc3000 Посмотреть сообщение
Если вы все знаете, то какой толк от слов?
Если вы не хотите разбираться или банально задуматься над ответами, то какой толк задавать вопросы?

Цитата:
Сообщение от Vidoc3000 Посмотреть сообщение
Показал пример и все. Или это так сложно кинуть на форму ServerSocket и написать пару строк?
Вы готовы оплатить время работы программиста на написание вам примера?
Вы готовы оплатить среду разработки для программиста?

И что вы хотите в примере? Вам же уже написали - при акцепте запускаете таймер и ждете пакет авторизации, пришел - все хорошо, нет - закрыли соединение.

Цитата:
Сообщение от Vidoc3000 Посмотреть сообщение
P.S. Ирония в подписях: Один за других ни чего не хочет делать, а другой хочет чтобы все сами отвечали на свои вопросы...
Ирония в том, что моя подпись, как лакмусовая бумажка, опять сработала.
p51x на форуме Ответить с цитированием
Старый 06.04.2018, 09:46   #14
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Vidoc3000
Если бы была качественная статья то, я бы её непременно привел. Но увы такой статьи нет. А во вторых ваш вопрос прост как 2х2=? Он не требует какой-то там теории. Всё что нужно вам рассказали в паре строк. p51x
Почему бы вам самостоятельно не написать такую статью?

Если хотите пример, то самый лучше что я видел лежит в Qt, а это Си++, а не Delphi. Но и то там не раскрыт вопрос бана по IP. А проверку бана как раз и можно, нужно поместить в OnAccept. - правда это ответ на другой вопрос. (по этой причине и отредактировал пост)

Цитата:
Сообщение от Vidoc3000 Посмотреть сообщение
Или это так сложно кинуть на форму ServerSocket и написать пару строк?
Это уже просьба написать чат за вас, а это не пару строк.

Код для сервера:
Код:
procedure TPeer.Execute;
begin
  while not Terminated do
     begin
     Text:=self.ClientSocket.ReceiveText;  // Получаем текст от клиента, следует обернуть в обработчик исключений
     Setlength(Text,Length(Text)-2);
     if IsValid=False then
       begin
       // Если клиент не представился, не прошёл валидацию в первые 3 секунды, то убиваем его
       if (AliveTime.elapsed> 3000) then   
        begin
         self.Terminate;
        end;
       if Text='MAGIC_CHAT:' then  IsValid:=True;  // Валидация клиента
       end else
         Synchronize(synchAddDataToControl);
     end;
 ClientSocket.Close;
end;
Код клиента:
Код:
     if TcpClient1.Connect then
        begin
        TcpClient1.Sendln('MAGIC_CHAT:');
        end;
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .

Последний раз редактировалось Pavia; 06.04.2018 в 09:50.
Pavia вне форума Ответить с цитированием
Старый 06.04.2018, 13:18   #15
Vidoc3000
 
Регистрация: 29.03.2018
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
Vidoc3000
Если бы была качественная статья то, я бы её непременно привел. Но увы такой статьи нет. А во вторых ваш вопрос прост как 2х2=? Он не требует какой-то там теории. Всё что нужно вам рассказали в паре строк. p51x
Почему бы вам самостоятельно не написать такую статью?

Если хотите пример, то самый лучше что я видел лежит в Qt, а это Си++, а не Delphi. Но и то там не раскрыт вопрос бана по IP. А проверку бана как раз и можно, нужно поместить в OnAccept. - правда это ответ на другой вопрос. (по этой причине и отредактировал пост)


Это уже просьба написать чат за вас, а это не пару строк.

Код для сервера:
Код:
procedure TPeer.Execute;
begin
  while not Terminated do
     begin
     Text:=self.ClientSocket.ReceiveText;  // Получаем текст от клиента, следует обернуть в обработчик исключений
     Setlength(Text,Length(Text)-2);
     if IsValid=False then
       begin
       // Если клиент не представился, не прошёл валидацию в первые 3 секунды, то убиваем его
       if (AliveTime.elapsed> 3000) then   
        begin
         self.Terminate;
        end;
       if Text='MAGIC_CHAT:' then  IsValid:=True;  // Валидация клиента
       end else
         Synchronize(synchAddDataToControl);
     end;
 ClientSocket.Close;
end;
Код клиента:
Код:
     if TcpClient1.Connect then
        begin
        TcpClient1.Sendln('MAGIC_CHAT:');
        end;
Во первых, я не просил писать весь чат, а только кусок в котором блокируются левые соединения.
Во вторых, TCPclient и работа с потоками... извращения для обычного чата....
Vidoc3000 вне форума Ответить с цитированием
Старый 07.04.2018, 14:49   #16
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Цитата:
Во вторых, TCPclient и работа с потоками... извращения для обычного чата....
Вы напишите конкретно на каких модулях собираетесь реализовать эту идею.
Или вы хотите на голом WinSock все это сделать?
Да и сейчас же у вас есть сервер на чем он сделан?
Для быстрого создания чата я бы порекомендовал TClientSocket и TServerSocket.

Последний раз редактировалось Aliens_wolfs; 07.04.2018 в 14:55.
Aliens_wolfs вне форума Ответить с цитированием
Старый 07.04.2018, 19:46   #17
Vidoc3000
 
Регистрация: 29.03.2018
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Aliens_wolfs Посмотреть сообщение
Вы напишите конкретно на каких модулях собираетесь реализовать эту идею.
Или вы хотите на голом WinSock все это сделать?
Да и сейчас же у вас есть сервер на чем он сделан?
Для быстрого создания чата я бы порекомендовал TClientSocket и TServerSocket.
Да я сделал уже готовый проект чата на TClientSocket и TServerSocket. Уже засматриваюсь в сторону winsock на WSAAccept, но от такого изобилия информации у меня голова начинает болеть... Столько сайтов перерыл, а информации по моей проблеме слишком мало...
Vidoc3000 вне форума Ответить с цитированием
Старый 07.04.2018, 22:02   #18
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Или вы просто не умеет читайт и/или понимать.
p51x на форуме Ответить с цитированием
Старый 08.04.2018, 00:19   #19
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Цитата:
Да я сделал уже готовый проект чата на TClientSocket и TServerSocket. Уже засматриваюсь в сторону winsock на WSAAccept
Вы вначале на этих компонентах потренируйтесь, они основаны на winsock, а потом подумайте стоит ли вам с winsock заморачиваться, сложновато будет.

Вот нашел проект, как то давно делал чат на этих компонентах, создал свой протокол общения, единственно что я там не доделал так это правильную загрузку фото в списке подключенных. В нем много чего интересного, в списке выберите собеседника и общайтесь или же со всеми сразу. Может это вам поможет в дальнейшем, в общем разбирайтесь.
Вложения
Тип файла: rar ProjectTClientTServer.rar (598.6 Кб, 27 просмотров)

Последний раз редактировалось Aliens_wolfs; 08.04.2018 в 00:32.
Aliens_wolfs вне форума Ответить с цитированием
Старый 10.04.2018, 20:18   #20
Vidoc3000
 
Регистрация: 29.03.2018
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Aliens_wolfs Посмотреть сообщение
Вы вначале на этих компонентах потренируйтесь, они основаны на winsock, а потом подумайте стоит ли вам с winsock заморачиваться, сложновато будет.

Вот нашел проект, как то давно делал чат на этих компонентах, создал свой протокол общения, единственно что я там не доделал так это правильную загрузку фото в списке подключенных. В нем много чего интересного, в списке выберите собеседника и общайтесь или же со всеми сразу. Может это вам поможет в дальнейшем, в общем разбирайтесь.
Сделал все по своему, оказывается это было легче, чем по форумам лазить) Клиент при коннекте отправляет на сервер свои настройки и если сервер не получает или они не верные просто дисконнектим. А за исходник спасибо
Vidoc3000 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ServerSocket stalker1995s Общие вопросы Delphi 3 02.01.2013 13:17
Есть ли у IdTCPServer такое свойство как у ServerSocket: ServerSocket.Socket.ActiveConnectio ns? TwiX Работа с сетью в Delphi 3 07.03.2010 14:28
Чужой SysListView32 W0LF Win Api 1 24.02.2010 17:19
ServerSocket HTL Работа с сетью в Delphi 2 02.01.2010 22:40