forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   PureBasic (http://forum.boolean.name/forumdisplay.php?f=90)
-   -   Сервер и клиент (http://forum.boolean.name/showthread.php?t=18902)

L-ee-X 31.01.2014 12:27

Сервер и клиент
 
Собственно вопрос, как то ранее писал сервер с клиентом на PureBasic, по команде сервера клиент на удаленном ПК делал скриншот и отсылал серверу. Проблема в том что под ХР это все работает отлично, а вот если сервер запустить на Win 8.1 то вылетает ошибка при попытке отсылания клиентом скриншота на сервер, а точнее когда сервер принимает файл и пытается его уже сохранить. Ошибка такого рода "Невозможен доступ к памяти (ошибка чтения по адресу ...................)"
Может вся проблема в правах Администратора?

L-ee-X 31.01.2014 14:19

Ответ: Сервер и клиент
 
Да и еще вопрос, есть белый IP но когда клиент запускаешь на другом ПК то он не подключается к белому IP, порт открыт все сделано, почему так не понимаю

SBJoker 31.01.2014 16:02

Ответ: Сервер и клиент
 
белый IP не означает что он не проходит через NAT провайдера. А провайдер может и не роутить любые порты.

moka 31.01.2014 16:11

Ответ: Сервер и клиент
 
Цитата:

Сообщение от L-ee-X (Сообщение 273402)
Да и еще вопрос, есть белый IP но когда клиент запускаешь на другом ПК то он не подключается к белому IP, порт открыт все сделано, почему так не понимаю

Ещё убедись что твой роутер форвардит порт на твою машину.

L-ee-X 31.01.2014 16:36

Ответ: Сервер и клиент
 
С этим все нормально, ну на 80 порт у меня Web сервер стоит и с ним все нормально.
А в сервере с клиентом тоже прописываю 80 порт и все равно не конектится.

Пётр 31.01.2014 16:47

Ответ: Сервер и клиент
 
Собери сервер с поддержкой OnError и узнаешь в какой строке проблема.
А еще лучше, запускай сервер из IDE с активным Purifier'ом.

L-ee-X 31.01.2014 17:16

Ответ: Сервер и клиент
 
А по подробнее можно?
И да кстати забыл добавить, на счет того что Сервер и Клиент в локальном режиме работает нормально и выполняет все функции, а вот стоит только клиент закинуть на другой ПК а в настройках клиентах ввести белый IP то он нифига не подключается.

Пётр 31.01.2014 18:21

Ответ: Сервер и клиент
 
http://purebasic.mybb.ru/viewtopic.php?id=278

Purifier включается в настройках компилятора на вкладке "Компиляция/Запуск". Отладчик так же должен быть включен.

L-ee-X 31.01.2014 18:27

Ответ: Сервер и клиент
 
Да сейчас уже вопрос не в ошибке которая появляется при отправке на сервер скриншота, а в том что клиент не работает с другого ПК а точнее не подключается к белому IP

Пётр 31.01.2014 18:37

Ответ: Сервер и клиент
 
IP точно белый?
Запусти сервер и проверь открыт ли порт. http://2ip.ru/check-port/

L-ee-X 31.01.2014 22:31

Запускаю, проверяю и на сервер выходит что есть подключение а на сайте написано что порт открыт

Я так понимаю ни кто не знает в чем проблема может быть?

Всем спасибо, все свободны.
Проблема решена. Подключится удалось. По части ошибки что я писал в первом посте так и не решил, хотя даже не пытался, но за то подтолкнуло переписать клиент с сервером и заставить работать и отсылать на сайт через MySQL :) В общем все ништяк и все робит :) Тему можно ЗАКРЫВАТЬ

moka 31.01.2014 23:07

Ответ: Сервер и клиент
 
Звучит так, что ты считаешь, что тебе кто-то в чём-то обязан?..
Т.к. выглядит что ты недоволен что написал, а тебе тут не помогли, думаю стоит задуматься о ожиданиях что ты ставишь прежде чем постить.
По факту - за то время что постишь тут, уже решил бы проблему сам.

Используй кнопку "Правка" у сообщений.

L-ee-X 31.01.2014 23:13

Ответ: Сервер и клиент
 
Цитата:

Сообщение от moka (Сообщение 273453)
Звучит так, что ты считаешь, что тебе кто-то в чём-то обязан?..
Т.к. выглядит что ты недоволен что написал, а тебе тут не помогли, думаю стоит задуматься о ожиданиях что ты ставишь прежде чем постить.
По факту - за то время что постишь тут, уже решил бы проблему сам.

Используй кнопку "Правка" у сообщений.

Да нет я так не считаю, черный юмор просто не более :)
По части постов? Да пардон извиняюсь. Проблему решил не спорю, и очень рад что решил, вот и поблагодарил всех кто пытался помочь :)
По факту - за то время что я постил тут я сидел и решал проблему...

moka 01.02.2014 04:20

Ответ: Сервер и клиент
 
Забираю слова обратно.

L-ee-X 02.02.2014 00:00

Ответ: Сервер и клиент
 
Вложений: 1
Кому не трудно скачайте и запустите у себя, нужно проверить подключается или нет.

moka 02.02.2014 00:10

Ответ: Сервер и клиент
 
Русский не отображается - не используй русский в приложениях, вообще.
Подвисает изначально, потом отвисает, потом совсем подвисает (Not Responding).

L-ee-X 02.02.2014 00:23

Ответ: Сервер и клиент
 
Цитата:

Сообщение от moka (Сообщение 273543)
Русский не отображается - не используй русский в приложениях, вообще.
Подвисает изначально, потом отвисает, потом совсем подвисает (Not Responding).

На счет языка учту. спс. А по части подключения, забыл порты пробросить, повтори если не трудно :)

Жека 02.02.2014 08:46

Ответ: Сервер и клиент
 
Я запустил. Окошко открылось, снизу текст "Сервер отключен...". Более ничего не происходит.

L-ee-X 02.02.2014 09:12

Ответ: Сервер и клиент
 
Цитата:

Сообщение от Жека (Сообщение 273556)
Я запустил. Окошко открылось, снизу текст "Сервер отключен...". Более ничего не происходит.

У меня было подключение на сервере IP 37.112.202.*** имя клиента PC-NRB
Работает, подключается, все норм :) Спасибо :)
При запуске может немного подвисать только потому, что если включен антивирусник.
На счет того что пишет что сервер отключен, я забыл исправить и добавить в статус бар надпись что клиент успешно подключен.
Исправил, перезалил, проверьте. Пост #15

Жека 02.02.2014 16:24

Ответ: Сервер и клиент
 
Ага, всё нормально подключилось, никаких подвисаний нет, windows 8.1.

L-ee-X 02.02.2014 16:25

Ответ: Сервер и клиент
 
Ага вижу, спасибо :) Будем дальше курить. Главное подключение есть :)

L-ee-X 05.02.2014 14:03

Ответ: Сервер и клиент
 
Подскажите как правильно передать и получить данные структуры

Пётр 06.02.2014 15:01

Ответ: Сервер и клиент
 
Смотря какая структура.
В простейшем случае.
Код:

SendNetworkData(ID, @Struct, SizeOf(MyStruct))
Но будет работать только со структурами имеющими статические поля. Пример передачи и приема структуры (в ней заголовки пакетов). http://purebasic.info/phpBB3ex/viewtopic.php?f=8&t=3035

L-ee-X 06.02.2014 18:25

Ответ: Сервер и клиент
 
Цитата:

Сообщение от Пётр (Сообщение 273784)
Смотря какая структура.
В простейшем случае.
Код:

SendNetworkData(ID, @Struct, SizeOf(MyStruct))

Это понятно, а как принять данные и заполнить структуру этими данными?

Пётр 06.02.2014 23:19

Ответ: Сервер и клиент
 
Вариантов много.
Можно прямо в структуру записать принятые данные (при условии что в ней все поля статические)
Код:

ReceiveNetworkData(Connect, @Info.NetPacket_Data, SizeOf(NetPacket_Data))
А можно принять в память, и структуре присвоить указатель на эту память.
Код:

*Data.NetPacket_Data = *BuffInfo\Buff

L-ee-X 06.02.2014 23:27

Ответ: Сервер и клиент
 
Спасибо. Уже разобрался. Продвижение есть. В топике что ты мне скинул конечно все бы ничего, но уж не особо я люблю разбираться в такой куче кода особенно если он писан другим человеком (Вот прокоментировать бы его тогда да), а так даже заморачиваться не стал. В итоге поломал не много голову и все же мне удалось записать данные переданной структуры по сети. Но тем ни менее за ссылку спасибо. На досуге почитаю.

Да я в принципе так и сделал сразу данные записал в структуру.
А на счет статических полей есть решение?

Пётр 07.02.2014 00:02

Ответ: Сервер и клиент
 
Если в структуре не все статические поля, то в ней только ссылки на динамические данные (строки, массивы, списки и т. д.) и тогда нельзя взять и просто передать структуру.

Тот код реализует свой протокол, что необходимо если не хочется заморачиваться с контролем приема данных, ведь за один вызов ReceiveNetworkData() может быть принята не вся посылка и сразу несколько посылок. Тот код разделяет посылки и ожидает приема если посылка не до конца принята.

L-ee-X 07.02.2014 05:09

Ответ: Сервер и клиент
 
Цитата:

Сообщение от Пётр (Сообщение 273817)
Если в структуре не все статические поля, то в ней только ссылки на динамические данные (строки, массивы, списки и т. д.) и тогда нельзя взять и просто передать структуру.

Тот код реализует свой протокол, что необходимо если не хочется заморачиваться с контролем приема данных, ведь за один вызов ReceiveNetworkData() может быть принята не вся посылка и сразу несколько посылок. Тот код разделяет посылки и ожидает приема если посылка не до конца принята.

Все решил. Спасибо

Жека 07.02.2014 09:37

Ответ: Сервер и клиент
 
Вложений: 1


Часовой пояс GMT +4, время: 06:03.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot