|
|
|
Потоки-сокеты - не пойму, тосрабатывает, то нет...
|
|||
|---|---|---|---|
|
#18+
Не пойму - у меня два сокет-клиента и один сокет-сервер. Сокет-сервер - в основном потоке, каждый клиент-сокет запускается в своем отдельном потоке. Почему-то в нетбинсе пытаюсь встать на точку останова в процедурах в потоке - не могу, хотя переменные, устанавливаемые в процедурах, устанавливаются. Впрочем, в одном потоке устанавливаются, в другом - нет. Если запущено два потока - все работает хорошо... Если три - сбоит... Кто-нибудь подскажет в чем там дело? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 17:34:29 |
|
||
|
Потоки-сокеты - не пойму, тосрабатывает, то нет...
|
|||
|---|---|---|---|
|
#18+
:) Погадал на кофе, выпало что ошибка где-то в коде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 19:11:32 |
|
||
|
Потоки-сокеты - не пойму, тосрабатывает, то нет...
|
|||
|---|---|---|---|
|
#18+
забыл ник , А я пришел к выводу, что автор что-то делает не так. Надеюсь, наши советы ему помогут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 19:49:35 |
|
||
|
Потоки-сокеты - не пойму, тосрабатывает, то нет...
|
|||
|---|---|---|---|
|
#18+
DEVcoach забыл ник , А я пришел к выводу, что автор что-то делает не так. Надеюсь, наши советы ему помогут Ну а как мне все проверить-то? вот теперь я создал три потока. В первом - сокет-сервер по одному порту, во-втором - сокет-клиент по другому, в третьем - сокет-клиент по третьему порту. Во всех потоках непрерывный цикл, в котором проверяю есть ли входная информация по сокету и отправляю в них команды по необходимости. Информация входная меняется довольно динамично. Поставил точки останова во всех трех потоках. В первый-второй попадаю, в третий - нет... А как мне ошибку отловить? И как правильные пацаны такие случаи программируют? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 20:04:08 |
|
||
|
Потоки-сокеты - не пойму, тосрабатывает, то нет...
|
|||
|---|---|---|---|
|
#18+
ну раз намеков не понимаете, то скажу прямо - покажите код ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 21:01:31 |
|
||
|
Потоки-сокеты - не пойму, тосрабатывает, то нет...
|
|||
|---|---|---|---|
|
#18+
Без кода ничего сказать нельзя. Классический подход выглядит следующим образом. 1) У вас висит в бесконечном цикле acceptor thread. Он блокируется на socket.accept() и ждет соединения от клиента. 2) Как только подключается клиент, он перекидывает его в отдельный поток. Клиентский поток в первом приближении можно создавать руками в момент подключения клиента. Но это неэффективно из-за высоких накладных расходов на создание и запуск потоков. Поэтому правильные пацаны держат ThreadPool, в который и делегируют запрос клиента. Вот и все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 21:10:50 |
|
||
|
Потоки-сокеты - не пойму, тосрабатывает, то нет...
|
|||
|---|---|---|---|
|
#18+
забыл никну раз намеков не понимаете, то скажу прямо - покажите код Теперь уже в понедельник... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 21:42:44 |
|
||
|
Потоки-сокеты - не пойму, тосрабатывает, то нет...
|
|||
|---|---|---|---|
|
#18+
DEVcoachБез кода ничего сказать нельзя. Классический подход выглядит следующим образом. 1) У вас висит в бесконечном цикле acceptor thread. Он блокируется на socket.accept() и ждет соединения от клиента. 2) Как только подключается клиент, он перекидывает его в отдельный поток. Клиентский поток в первом приближении можно создавать руками в момент подключения клиента. Но это неэффективно из-за высоких накладных расходов на создание и запуск потоков. Поэтому правильные пацаны держат ThreadPool, в который и делегируют запрос клиента. Вот и все. У меня примерно так и есть. Точнее почти так. С той разницей, что я клиентские сокеты создаю сразу в отдельном потоке перед accept-ом, благо, что они работают каждый со своими портами. Если связи с сервером нет, то клиент в бесконечном цикле пытается ее установить, если связь есть - в бесконечном цикле пытается считывать информацию из сокета и отправлять в сокет нужные команды. Если связь разрывается, то клиент пытается ее вновь установить в том же потоке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 21:48:50 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38382925&tid=2128702]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 266ms |
| total: | 395ms |

| 0 / 0 |
