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=14282)

maxturbo 22.02.2011 16:51

Сервер+Клиент=Передача данных
 
В общем такой вот вопрос!!! :)
Нужно сделать программу состоит она из клиента и сервера!!!
Суть программы такова!
На одну машину закачивается клиент и делай скриншоты рабочего стола и всего подобного что происходит там, в том числе и скрины когда играют в игры, хочу сделать чтоб период снятия скринов тоже стоял ну к примеру каждые две минуты и чтоб эти скрины отправлялись на сервер!
Допустим у меня дома сервер будет запущен, а у другова юзира клиент, клиент должен работать в фоновом режиме то есть его видно не должно быть делать скриншоты и отсылать их ко мне то есть на сервер :) :)
Реально ли такое организовать на PureBasic'e???
Программа будет работать в локальной сети...
+ Еще охота чтоб на сервере выводился список тех юзиров у кого сейчас запущен клиент этой программки в виде их IP адреса! :)
Кто подскажет как можно такое организовать и реально ли это вообще :) :)

moka 22.02.2011 17:06

Ответ: Сервер+Клиент=Передача данных
 
Реально. Но возникнут трудности с Full Screen играми, т.к. это уже немного другая история.
Остальное, не сложно.
На PureBasic вроди есть всё что нужно, работа с сокетами, или получше что (уже подготовленное).
Используй TCP для передачи данных. А картинки для простоты можно прямиком клиентским приложением копировать на локально зашаренную папку (не придётся делать передачу картинок по TCP).
Можно ещё проще, поставить MS SQL и тупо писать имя файла и timestamp, клиентом. А серверным приложением обновлять список в риалтайм. Не придётся писать таким образом никаких серверов для юзер контроля на TCP/IP, и т.п.

ЗЫ, за работниками следить решили? :(

maxturbo 22.02.2011 17:22

Ответ: Сервер+Клиент=Передача данных
 
Цитата:

Сообщение от MoKa (Сообщение 180039)
ЗЫ, за работниками следить решили? :(

Почти угадал :) Блин а значить если играя в игры Full Screen то уже будет посложнее сделать снятие скриншотов да???

SBJoker 22.02.2011 17:24

Ответ: Сервер+Клиент=Передача данных
 
а чем радмин не устраивает?

maxturbo 22.02.2011 17:29

Ответ: Сервер+Клиент=Передача данных
 
Цитата:

Сообщение от SBJoker (Сообщение 180041)
а чем радмин не устраивает?

Радмин тоже можно, но все же все знать будут что он стоит! Вот и решил так сказать сам сделать сам установить и чеб ни кто ни чего не знал :)

moka 22.02.2011 18:43

Ответ: Сервер+Клиент=Передача данных
 
Дык, на то и контроль, чтоб о нём знали, а то это уже слишком говяно и паскудно!
Значит работодатель мало платит, что работник не работает..

maxturbo 23.02.2011 05:18

Ответ: Сервер+Клиент=Передача данных
 
Лан со скринами все вери гуд :) Сделал теперь вот не пойму как организовать чтоб сохранялись они ко мне на компьютер сразу ну или отсылались :) Помогите :)

baton4ik 23.02.2011 10:12

Ответ: Сервер+Клиент=Передача данных
 
Цитата:

Сообщение от maxturbo (Сообщение 180043)
Радмин тоже можно, но все же все знать будут что он стоит! Вот и решил так сказать сам сделать сам установить и чеб ни кто ни чего не знал :)

Фейл. Даже увидев иконку в трее, не каждый догадается кликнуть по ней и глянуть, что это.
Я, когда брутил радмины (по диапазонам адресов и простыми парами логин-пароль, каждый раз по 15 штук получал), к кому только не подключался. Там были и офисные работники, и домашние компьютеры, один раз с какой-то девушкой познакомился - оказалось, что она знает о радмине, но не удаляет и мы (я был не один) третьи, с кем она так знакомится. Пообщались в её блокноте (ещё я подключился к её микрофону и слышал всё, что у неё происходит, так что комментировал ситуацию в квартире), она добавила вконтактике. К слову, сказала, что хочет быть программисткой и носит очки.
Другой раз подключился к каким-то парням лет 12. Не помню, чем я себя выдал, однако они стали дико материться в микрофон и посылать меня. Я сказал, что они не в той ситуации, чтоб материться, ведь я могу удалить их любимый CS, но страх им, как оказалось, не ведом. Я, не будучи злым, ничего не удалил.
Так что совсем не многие замечают радмин.

moka 23.02.2011 13:35

Ответ: Сервер+Клиент=Передача данных
 
В чём проблемма? Сохраняй прямиком на локально зашаренную папку в сети, с сервера. Типо так: "\\serverpc\media".

maxturbo 23.02.2011 15:51

Ответ: Сервер+Клиент=Передача данных
 
Цитата:

Сообщение от MoKa (Сообщение 180143)
В чём проблемма? Сохраняй прямиком на локально зашаренную папку в сети, с сервера. Типо так: "\\serverpc\media".

Проблема как рас таки в том что я не могу докуботурить как создать сервер и клиент! Клиент должен состоять из так сказать программы для снятия скринов и отправки их на сервер, а сервер состоять из так сказать чтоб выводил список какие клиенты сейчас подключены то есть у кого в данный момент запущен клиент отображалось чтоб в виде их IP адресов ну и разумеется принимал фалы :) Как это сделать я фиг его знает, что то у меня в бошке не укладывается :) Помогите пожалуйста чем сможете :) :)

moka 23.02.2011 16:02

Ответ: Сервер+Клиент=Передача данных
 
Сервер - это компьютер в твоей сети. Не о совфте речь, не "серверное приложение", а сам сервер, как груда железа.
Зашарь папку в сети, и она будет доступна с других компов, настрой права пользователей, чтобы можно было только создавать файлы, но не удалять или просматривать.
И тупо копируй их.
Клиентское приложение, будет делать скриншот, сохраняя его прямиком в папку на сервере. Не нужно париться с передачей файла через серверное приложение, делай это прямым образом.
Имя файла, для уникальности, пусть имеет уникальный ID клиентского приложения (сам это мути), и timestamp, проще всего: ид_секунды_минуты_час_день_месяц_год
Только без слешей.
А на сервер посылай тупо имя файла, и сервер будет этим орудовать.

Ещё раз говорю, это в разы проще делать используя SQL сервер, и записью данных прямым образом. Но тогда проверка realtime будет немного иная, нужно будет например каждые 10 секунд, писать в бд timespamp, чтобы админским приложением сверять с временем, и если промежуток между последним обновлением больше 1 минуты - значит что-то не то (либо выключили клиентское приложение, либо вырублен комп, либо с сетью траблы).

maxturbo 10.03.2011 17:47

Ответ: Сервер+Клиент=Передача данных
 
Объясните дураку, а то понять не получается :)
С клиентом и с сервером вроде разобрался, теперь вопрос как мне с сервера отправить команду на снятие скриншота...
Допустим выбираю IP адрес в списке у кого запущенны клиент нажимаю на кнопку которая находится на серверной части и он посылает команду клиенту сделать скриншот.... :)
Я знаю что это надо делать командами типа SendNetworkData только как понять не могу :)

moka 10.03.2011 17:59

Ответ: Сервер+Клиент=Передача данных
 
Говоришь у тебя есть сервер и клиент уже, или только мысли? Используя какие технологии и протоколы ты реализовал это?
Больше инфы.

maxturbo 10.03.2011 18:32

Ответ: Сервер+Клиент=Передача данных
 
Да есть уже сервер и клиент Пока что только сделано так что сервер запущен, и когда подсоединяется клиент то на сервере выводится список всех клиентов кто подключен...
Все вроде разобрался :)

maxturbo 11.03.2011 22:21

Ответ: Сервер+Клиент=Передача данных
 
Почти закончил написание программы :) Кому интересно могу выложить :)
Программа работает Сервер+Клиент
На сервере сделал четыре функции отправки команд клиенту
1-Сделать скриншот экрана и переслать серверу ( Уже готово )
2-Просмотреть список запущенных процессов и переслать серверу ( Уже готово )
3-Сканирование всех жестких дисков, записывать в файл и пересылать серверу ( В разработке )
4-Закрыть клиента на удаленном ПК ( Уже готово )
Вот так будет работать эта программа :)

maxturbo 12.03.2011 01:07

Ответ: Сервер+Клиент=Передача данных
 
Назрел еще один вопрос :)
На клиенте стоит таймер, то есть когда он не может подключиться к серверу или сервер отключен запускается таймер на 5 минут после пяти минут проверяет опять подключение, и так пока не подключится... Собственно сам вопрос вот в чем...
Когда клиент успешно подключается к серверу и все нормально работает, но когда я отключаю сервер мне нужно чтоб и клиент тоже отключался от сервера и запускался опять таймер, собственно сделать что то не получается...
ЕСТЬ У КОГО НИБУДЬ МЫСЛИ НА ЭТУ ТЕМУ :)
Есть вариант как через определенное время посылать покет данных серверу, и если сервер не принимает их значить он отключен и запускаем таймер, но думаю может есть варианты по проще у кого нибудь :)

}{@KeR 12.03.2011 14:25

Ответ: Сервер+Клиент=Передача данных
 
Давай )))))))))) :) :) :) :)
(Ну выложи сервер + клиент)

}{@KeR 12.03.2011 14:28

Ответ: Сервер+Клиент=Передача данных
 
IF нету сигнала
Close соединение
goto x ;К таймеру
ENDIF

maxturbo 12.03.2011 16:38

Ответ: Сервер+Клиент=Передача данных
 
Цитата:

Сообщение от }{@KeR (Сообщение 182455)
IF нету сигнала
Close соединение
goto x ;К таймеру
ENDIF

Оптимальный вариант я скажу :)
Как допишу так выложу... :)

LLI.T.A.L.K.E.R. 15.03.2011 08:51

Ответ: Сервер+Клиент=Передача данных
 
А можно так, что:
сервер написан на PureBasic под Linux
а клиент потом дописан на Basic3D под Windows
???

maxturbo 15.03.2011 10:01

Ответ: Сервер+Клиент=Передача данных
 
Цитата:

Сообщение от LLI.T.A.L.K.E.R. (Сообщение 182824)
А можно так, что:
сервер написан на PureBasic под Linux
а клиент потом дописан на Basic3D под Windows
???

А почему бы и нет :) Только что попробовал клиента на Blitz3D написать, все работает, а сервер на PureBasic... Вот только у меня все это на винде, под люникс не знаю :) Попробуй )))
Хотя потрудиться придется...

moka 15.03.2011 13:25

Ответ: Сервер+Клиент=Передача данных
 
Можно. Общаешься ведь между клиентом и сервером по независимому от платформы протоколу.
Можно хоть на эллектронике реализовать пингер и работать с ним через ethernet, и т.п.

LLI.T.A.L.K.E.R. 15.03.2011 13:38

Ответ: Сервер+Клиент=Передача данных
 
Я так подумывал написать заготовку сервера под линукс, не важно на каком языке (но для этого нужно изучить и подготовить сам линукс)..
А потом подстраивать игры, программы под сервер по обменам данных.

Мысль такая:
"почему никто не создал мульти-сервер под линукс, чтобы потом не париться с ним."

Т.е. предположить какие данные и каким образом сервер будет обрабатывать и принимать данные клиентов (входы-выходы), а потом в играх делать так, чтобы данные правильным образом передавались серверу.
Да, сложно сделать такой сервер для MMORPG, но для тактических игрушек вполне сойдёт (передавать позиции игроков и т.п. значения)
Здесь же можно сказать о читерстве, при хранении и обработке данных на клиенте. Но защититься от этого не так сложно.

ЗЫ: с системой серверов не так уж знаком.

moka 15.03.2011 13:41

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

Пётр 15.03.2011 18:39

Ответ: Сервер+Клиент=Передача данных
 
LLI.T.A.L.K.E.R.
Вот Web-сервер на PureBasic http://purebasic.mybb.ru/viewtopic.php?id=148
Он был скомпилирован как под Winows так и под Linux. Можно и под MacOS X скомпилить если надо.
Так что все реально.

maxturbo 18.03.2011 02:04

Ответ: Сервер+Клиент=Передача данных
 
Вложений: 2
Цитата:

Сообщение от }{@KeR (Сообщение 182454)
Давай )))))))))) :) :) :) :)
(Ну выложи сервер + клиент)

Пользуйся :)
Пока что только две команды которые отправляет сервер клиенту это:
1-Сделать скриншот уд. пк и переслать на сервер
2-Список запущенных программ на уд. пк и переслать серверу
Есть еще команда обновление клиента, ну до обновления еще долго :)
Потестируй отпишись )))
В config.cfg укажи IP адрес на котором будет запущен сервер...
Порт 6832 должен быть открыт ))

}{@KeR 24.03.2011 12:19

Ответ: Сервер+Клиент=Передача данных
 
Вот 1-ый пункт и 2-ой как сделать через твою прогу?....Что нажать надо чтобы это этакое произошло???

maxturbo 24.03.2011 14:10

Ответ: Сервер+Клиент=Передача данных
 
Когда клиент подключен, то в сервере с права отоброжается его ID Имя и IP адрес, правой кнопкой на него щелкаешь, и выбираешь что те надо... :)

Amatsu 30.03.2011 20:53

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

moka 30.03.2011 23:00

Ответ: Сервер+Клиент=Передача данных
 
Зависит от ситуации. Если нужен тот же логин для веб приложения, либо на профиле завязка разная. Либо будет расчёт серверов игровых, но один профиль.
Зависит от потребностей.


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

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