|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.11.2011, 18:59 | #1 |
Пользователь
Регистрация: 01.11.2010
Сообщений: 15
|
Элементарное клиент-серверное приложение (Winsock)(Delphi)
Всем доброго времени суток.
Задача состоит в том, чтобы написать очень элементарное приложение на сокетах (Winsock) для понимания их работы. Есть две программы: клиент и сервер. Суть клиента: установить соединение с сервером и отослать сообщение "привет". Суть сервера: установить соединение с клиентом и принять от него сообщение и отобразить его в поле Memo. Сервер: Код:
Код:
Проблема: запускаются оба приложения. В них нажимаются по очереди кнопки инициализации сокета. После этого сервер просто зависает. Клиент вроде живой. Понятия не имею в чём дело. Если кто-нибудь сможет подсказать, как быть в такой ситуации, то буду благодарен. |
28.11.2011, 19:14 | #2 | |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> Понятия не имею в чём дело
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx Цитата:
1) юзать неблокорующие сокеты 2) слушать в отдельном потоке
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
|
28.11.2011, 19:41 | #3 |
Пользователь
Регистрация: 01.11.2010
Сообщений: 15
|
> юзать неблокорующие сокеты
Их? Ну допустим... У меня есть два примера с ними, но в одном используется Connect после вызова IOCtrlSocket, а в другом - WSAAsyncSelect. Что из этого лучше использовать? Или это вообще несвязанные между собой вещи? |
28.11.2011, 19:46 | #4 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> Что из этого лучше использовать?
дело вкуса, вместо WSAAsyncSelect() достаточно простого select()
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
28.11.2011, 19:59 | #5 |
Пользователь
Регистрация: 01.11.2010
Сообщений: 15
|
Попробовал запихнуть в программы неблокирующие сокеты.
Код:
Приложения вроде не зависают, но и сообщение клиент серверу не отправляет. |
28.11.2011, 20:30 | #6 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
Т.е. по-вашему, если в случайном порядке набросать в коде IOCtlSocket() и select(), всё само вдруг магическим образом заработает? Может уже пора начать читать документацию по тем функциям, которые вы используете? Или будем продолжать переставлять операторы местами, пока не заработает? )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
28.11.2011, 20:47 | #7 |
Пользователь
Регистрация: 01.11.2010
Сообщений: 15
|
Я про эти сокеты знаю мало чего, точнее знаю только то, что объяснял мне преподаватель.
Эта документация тока тратой времени будет. Там примеров нет (а если и есть, то мало), а без них мне всё понять будет очень трудно. Есть у меня пример, реализованный через UDP, придётся его разбирать и вникать самому (как обычно). Спасибо за помощь. |
28.11.2011, 20:58 | #8 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> Задача состоит в том, чтобы написать очень элементарное приложение на сокетах (Winsock) для понимания их работы.
должен признаться, у вас достаточно странный подход к решению поставленной задачи )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
28.11.2011, 21:43 | #9 |
Пользователь
Регистрация: 01.11.2010
Сообщений: 15
|
Спасибо. А как ещё можно понять принцип работы сокетов, кроме как не на примере?
Итоговая задача более сложная, поэтому надо начинать с малого. |
28.11.2011, 23:05 | #10 |
В стагнации
Участник клуба
Регистрация: 29.07.2011
Сообщений: 1,303
|
Прочитать пару книг по этой теме, разобраться в том что и как работает, а уж потом "смотреть на примере", так сказать, вникая в суть прочитанного. Насколько мне известно, так получаются более глубокие познания)
E-mail: pashaworking@gmail.com | ICQ: 479914426 | Skype: moondearr
Понять, чего от тебя требует заказчик – это уже половина всей работы, а иногда и полностью выполненное задание. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ms sql+delphi, клиент-серверное приложение | denis_stell | БД в Delphi | 4 | 03.11.2011 20:06 |
Клиент-серверное приложение | Granus | C/C++ Сетевое программирование | 2 | 20.07.2011 02:07 |
клиент-серверное приложение | roxy1807 | БД в Delphi | 0 | 19.04.2011 19:02 |
Простейшее клиент-серверное приложение в Delphi 2009 | RNT | Работа с сетью в Delphi | 15 | 21.11.2010 19:08 |
Возможно-ли Клиент-серверное приложение типа Клиент(Pascal) а сервер(CGI)? | Demol | Работа с сетью в Delphi | 1 | 21.04.2009 16:18 |