Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как разделить сообщения на клиент сервере
|
|||
|---|---|---|---|
|
#18+
trom, по переменной client_socket у тебя тоже будут гонки. Она также незащищена ничем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2013, 15:52 |
|
||
|
Как разделить сообщения на клиент сервере
|
|||
|---|---|---|---|
|
#18+
trom, Ты так же везде шлёшь бинарку, т.е. у тебя нифига не текстовый протокол, но буфера все печатаешь как симпольные, printf-ом. Плохо кончится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2013, 15:59 |
|
||
|
Как разделить сообщения на клиент сервере
|
|||
|---|---|---|---|
|
#18+
Ну и вообще дофига других ошибок дурацких. Любая из них может привести всё в неработоспособное состояние. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2013, 16:16 |
|
||
|
Как разделить сообщения на клиент сервере
|
|||
|---|---|---|---|
|
#18+
MasterZiv, переменную nclients--; // уменьшаем счетчик активных клиентов можно и удалить, она не очень важна printf тоже только в режиме отладки нужен А вот client_socket важна, с много поточностью почти не работал, можно пример в коде что с ней можно сделать чтобы не было проблем ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2013, 16:53 |
|
||
|
Как разделить сообщения на клиент сервере
|
|||
|---|---|---|---|
|
#18+
tromчто с ней можно сделать чтобы не было проблем ? Передавать её в поток по значению, а не по ссылке. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2013, 17:31 |
|
||
|
Как разделить сообщения на клиент сервере
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovtromчто с ней можно сделать чтобы не было проблем ? Передавать её в поток по значению, а не по ссылке. +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2013, 17:49 |
|
||
|
Как разделить сообщения на клиент сервере
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Как именно передать ее по значению? Код: plaintext 1. компилируется Код: plaintext 1. уже нет то есть client_socket можно передать только по ссылке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2013, 02:00 |
|
||
|
Как разделить сообщения на клиент сервере
|
|||
|---|---|---|---|
|
#18+
tromMasterZiv, Как именно передать ее по значению? Код: plaintext 1. компилируется Код: plaintext 1. уже нет то есть client_socket можно передать только по ссылке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2013, 12:16 |
|
||
|
Как разделить сообщения на клиент сервере
|
|||
|---|---|---|---|
|
#18+
tromКак именно передать ее по значению? RTFM typecast Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2013, 13:38 |
|
||
|
Как разделить сообщения на клиент сервере
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovtromКак именно передать ее по значению? RTFM typecast дам подсказку : этот параметр потока на самом деле не указатель, а просто машинное слово. ос его не отрабатывает, а в неизменном виде передает функции потока. главное, чтобы твои данные туда влезли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2013, 14:09 |
|
||
|
Как разделить сообщения на клиент сервере
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Лучше в коде покажи как сделать, подсказка мне не помогла ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2013, 15:46 |
|
||
|
Как разделить сообщения на клиент сервере
|
|||
|---|---|---|---|
|
#18+
trom, _beginthreadex(NULL,NULL,SexToClient,(void *)client_socket,NULL,&thID ); и на приемной стороне аналогичное преобразование в обратную сторону. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2013, 20:40 |
|
||
|
Как разделить сообщения на клиент сервере
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Код: plaintext 1. вот так скомпилилось. Но при запуске клиент сервера, сервер зависает. На приемной стороне это где ? внутри функции ? Что делать то, можно пример как преобразовать в обратную сторону? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 09:01 |
|
||
|
Как разделить сообщения на клиент сервере
|
|||
|---|---|---|---|
|
#18+
tromMasterZiv, Код: plaintext 1. вот так скомпилилось. Но при запуске клиент сервера, сервер зависает. На приемной стороне это где ? внутри функции ? Что делать то, можно пример как преобразовать в обратную сторону? да, внутри функции потока. обратное преобразование socket = (int) thread_param; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 11:26 |
|
||
|
Как разделить сообщения на клиент сервере
|
|||
|---|---|---|---|
|
#18+
навараксал это всё по-нормальному... получился такой полноценный Winsock-echo-server... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 15:06 |
|
||
|
Как разделить сообщения на клиент сервере
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Спасибо теперь понятно! Чуть попозже выложу свой код клиент сервера попроще. Причесываю код, разделяю все на функции и возникли вопросы: 1) Нужно ли выделять разные порты если на компе будут работать две и больше программы сервера ? Если нужно получается нужна отдельная прога на сервере, типо главный сервер который будет иметь порт известный всем клиентам и она будет распределять подключения от клиентов сообщая порт свободной программы сервера. 2) Как лучше сделать: а) Клиент отправляет сообщение получает ответ и отсоеденяется . б) Клиент постоянно подключен к серверу, все время работы программы клиента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 20:28 |
|
||
|
Как разделить сообщения на клиент сервере
|
|||
|---|---|---|---|
|
#18+
MasterZivнавараксалчто сделал? ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 21:09 |
|
||
|
Как разделить сообщения на клиент сервере
|
|||
|---|---|---|---|
|
#18+
1) Нужно ли выделять разные порты если на компе будут работать две и больше программы сервера ? как бы на одном порту они просто не смогут работать. 2) Как лучше сделать: а) Клиент отправляет сообщение получает ответ и отсоеденяется . б) Клиент постоянно подключен к серверу, все время работы программы клиента. б) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 23:01 |
|
||
|
Как разделить сообщения на клиент сервере
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Вынес подключение клиента к серверу в отдельную функцию и возник вопрос. Для того чтобы клиент был подключен к серверу от начала запуска проги и до конца, если правильно понимаю переменную Код: plaintext 1. нужно делать глобальной. А как проверить что этой переменной уже присвоено какое то подключение к серверу ? Чтобы сделать проверку о наличии подключения и если его нет или оно разорвано пере подключится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 19:10 |
|
||
|
Как разделить сообщения на клиент сервере
|
|||
|---|---|---|---|
|
#18+
Для того чтобы клиент был подключен к серверу от начала запуска проги и до конца, если правильно понимаю переменную Код: plaintext 1. нужно делать глобальной. Нет, ты понимаешь неправильно. А как проверить что этой переменной уже присвоено какое то подключение к серверу ? Чтобы сделать проверку о наличии подключения и если его нет или оно разорвано пере подключится. Сравнить её с "НУЛЁМ". Что для переменной SOCKET является нулём -- ещё вопрос, но я думаю, что если ты затрёшь её всю нулями, а после установки соединения проверишь, что там не всё нули, будет оно самое то. Другой вариант -- переменную сделать указателем, проверять на NULL и выделять при установке соединения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 20:11 |
|
||
|
Как разделить сообщения на клиент сервере
|
|||
|---|---|---|---|
|
#18+
Есть тут только одна маленькая фигня: разрыв соединения (по любой причине) не приводит к автоматическому обнулению переменной на что надеется ТС. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 20:22 |
|
||
|
Как разделить сообщения на клиент сервере
|
|||
|---|---|---|---|
|
#18+
tromMasterZiv, Вынес подключение клиента к серверу в отдельную функцию и возник вопрос. Для того чтобы клиент был подключен к серверу от начала запуска проги и до конца, если правильно понимаю переменную Код: plaintext 1. нужно делать глобальной.Неправильно. Глобальность переменной для этого будет полезна, но она не гарантирует того что коннект будет существовать. tromА как проверить что этой переменной уже присвоено какое то подключение к серверу ?Функция socket() возвращает -1 если она не смогла создать сокет. Поэтому обычно и переменную держат в этом значении чтобы показать что сокет не существует. Но это просто рекомендация. В 0 ее ставить для несуществующего сокета не стоит - ноль это обычно stdout. Вполне существующий поток. tromЧтобы сделать проверку о наличии подключения и если его нет или оно разорвано пере подключится.Проверяй результат который тебе возвращают все твои send()/recv(). Если они упали с ошибкой - читай номер ошибки. И если это ошибка отсутствия коннекта - подключайся заново. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 21:12 |
|
||
|
Как разделить сообщения на клиент сервере
|
|||
|---|---|---|---|
|
#18+
White OwlФункция socket() возвращает -1 Под виндой тип SOCKET - unsigned. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 21:23 |
|
||
|
Как разделить сообщения на клиент сервере
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyWhite OwlФункция socket() возвращает -1 Под виндой тип SOCKET - unsigned.Под виндой socket и WSASocket возвращают INVALID_SOCKET. Хочешь угадать чему оно равняется? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 21:29 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38513575&tid=2019787]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 168ms |

| 0 / 0 |
