LINUX.ORG.RU

помогите написать несложную программку :)


0

0

Всем приветик!))) обращаюсь ко всем кто может помочь, кто не может просьба не отписывать всякие подколки ;) в общем мне надо написать простенькую программку: "клиент принимает с клавиатуры команды и передает их серверу. сервер выполняет приянтые команды и возварщает результаты их выполнения клиента. принимаемые данные клиент выводит на терминао. программы запускать на разных терминалах" пожалуйста помогите очень срочно надо!!!


Re: помогите написать несложную программку :)


ну если так уж срочно надо...

обычно написание программы начинается с обдумования того, шо она будет делать. я так понимаю, с этом у вас особых проблем нет. конечно, нужно уточнить, какой именно сервер имеется ввиду и так далее и тому подобное, но это можно оставить и на потом.

собственно главное в написании программы - это открыть редактор. причём не абы какой, а правильны. в гнулинуксе есть много самых разных редакторов, но по общему признанию наиболее подходящий для этих целей является мцедит. конечно, есть ещё имаксы и вимы и пр., но они явно не справляются с возложенными на них задачами и через какое то время вы замечаете, что вместо написания программы вы занимаетесь чем угодно включая жосткий сексом с редактором но только не программой.

так что берём мседит и вперёд. чтобы запустить мцедит нужен терминал. в гнулинуксе есть масса самых разных терминалов. но по опять же общепринятому меннию самым подходящим является кОнсоле. да. если же у вас её нет а, скажем, есть gterm, мы настоятельно рекомендуем вам поставить кадее и там у вас будет кОнсоле. вот.

итого. запускаем из меню приложений кОнсоле. получилось? прекрасно. в большом черном окошечке кОнсоле пишем "mcedit". обычно это выглядит навроде:
$ mcedit
..и нажимаем энтер. получилось? если нет, не переживайте, далеко не у всех это получается с первого раза. попробуйте ещё раз.

что можно делать с мцедитом и нах он нам сдался мы будем изучать на следующем уроке. а пока что попрошу сдать денежку в кассу. если денежки нет, можно натурой.

до новых встреч!

// wbr

klalafuda ★☆☆ ()

Re: помогите написать несложную программку :)

>клиент принимает с клавиатуры команды и передает их серверу. сервер выполняет приянтые команды и возварщает результаты их выполнения клиента

эмм... Консоль + ssh

Или я чего-то не допонял?

delilen ★☆ ()

Re: помогите написать несложную программку :)

> Или я чего-то не допонял?

конечно же не понял. мальчик хочет, чтобы ему тут курсовуху по-быстрому написали. от и до. сам то он ни в пизду ни в красную армию, так что писать нужно попроще, шоб препод не докопался. причём нашару. что тут ещё понимать то?

// wbr

klalafuda ★☆☆ ()

Re: помогите написать несложную программку :)

Денег сколько ?

phasma ★☆ ()
Ответ на: Re: помогите написать несложную программку :) от klalafuda

Re: помогите написать несложную программку :)

В чем смысл курсовой я не понял? Ему ssh написать надо или pytty.exe (или как ее там?).

Так давай напишем, за тыщенку баксов... ну то есть пакет консоле дадим...

delilen ★☆ ()

Re: помогите написать несложную программку :)

>В чем смысл курсовой я не понял?

Ему нужно научиться писать простые сетевые программки. А он даже не выучил название языка программирования, которому их учат. Кто бы дал исходник на брейнфаке, мы бы повеселились :)

Davidov ★★★★ ()

Re: помогите написать несложную программку :)

>Ему нужно научиться писать простые сетевые программки.

Пользователь вводит команды, которые передаются на сервер. На сервере они выполняются, и результат показывается пользователю.

Давайте продадим ему ssh.

Я вот этого пункта никак понять не могу... Или ему клиент-серверное приложение нужно?

delilen ★☆ ()

Re: помогите написать несложную программку :)

telnet подойдет?

urxvt ★★★★★ ()

Re: помогите написать несложную программку :)

> это какой-то странный мальчик

в очередной раз очередной мальчик назвался девочкой дабы пипл чиста хавнул. что-то больно много появилось девочек в Developers за последнее время. оч много.

// wbr

klalafuda ★☆☆ ()

Re: помогите написать несложную программку :)

есть 2 терминала один клиент а другой сервер в клиенте вводятся простенькие команды типа ps -l они отсылаются на сервер там они выполняются и результаты возвращаются клиенту, принятые данные он выводит на терминал

albina ()
Ответ на: Re: помогите написать несложную программку :) от klalafuda

Re: помогите написать несложную программку :)

> до новых встреч!

Я понимаю, что студент тупит, но подсказать все же можно. Вот программа сервера:

netcat -p -l 8080 -c bash

Программа клиента оставляется в качестве ДЗ.

www_linux_org_ru ★★★★★ ()
Ответ на: Re: помогите написать несложную программку :) от www_linux_org_ru

Re: помогите написать несложную программку :)

>netcat -p -l 8080 -c bash

Если я правильно интерпретировал "комманды вводятся с разных терминалов" оно еще форковаться должно.

Absurd ★★★ ()
Ответ на: Re: помогите написать несложную программку :) от www_linux_org_ru

Re: помогите написать несложную программку :)

да вы не правильно поняли) сервер это тупо название скрипта в нем просто должна выполнится комнада котрую мы вводим в "клиенте"

albina ()

Re: помогите написать несложную программку :)

> Если я правильно интерпретировал "комманды вводятся с разных терминалов" оно еще форковаться должно.

Тут это не обязательно, т.к. команда все равно исполняется отдельным процессом.

www_linux_org_ru ★★★★★ ()

Re: помогите написать несложную программку :)

> Если я правильно интерпретировал "комманды вводятся с разных терминалов" оно еще форковаться должно.

Хотя я проверил щас, ты прав. Оно должно форковаться. Тогда нужно брать socket -f bla-bla-bla

www_linux_org_ru ★★★★★ ()

Re: помогите написать несложную программку :)

>поняла!

Мы верим!

>что не понятного то?


Лично мне - суть задания. И скрипт который будет сервером. То есть параметры должны передаваться скрипту. тот должен делать выборку из чего-то там заложенного и выдавать готовый результат?

man case

delilen ★☆ ()

Re: помогите написать несложную программку :)

> Если я правильно интерпретировал "комманды вводятся с разных терминалов" оно еще форковаться должно.

Если так, то программа сервера socket -fblp bash -s 8080

:-)

www_linux_org_ru ★★★★★ ()

Re: помогите написать несложную программку :)

> да вы не правильно поняли) сервер это тупо название скрипта в нем просто должна выполнится комнада котрую мы вводим в "клиенте"

Я все понял, а ты -- нет. Absurd мне правильно указал на дефект прошлой программы сервера, так что вот исправленная:

socket -fblp bash -s 8083

старая тоже работала, только с одного терминала.

www_linux_org_ru ★★★★★ ()

Re: помогите написать несложную программку :)

Лучше всего воспользоваться современными технологиями ООП - то есть объектно ориентированного программирования. Для сервера и для клинета лучше всего взять готовые компоненты. Тогда вся задача значительно упрощается - нужно будет только правильно связать их. Посмотри вот на этих сайтах, может чего подойдет:

http://www.delphisources.ru/pages/faq/internet_net.html

http://www.delphi.int.ru/?name=components

http://www.delphi.pnz.ru/components.php

LamerOk ★★★★★ ()

Re: помогите написать несложную программку :)

На можешь дорабатывать ;))
(Осторожно! быдлокод)
cat server.py
======================================= 
#!/usr/bin/env python
import SimpleXMLRPCServer
import subprocess

def system(cmd,key_args,args):
    try:
        res = subprocess.Popen([cmd,key_args,args], stdout=subprocess.PIPE)
        return res.stdout.read()
    except OSError:
        return []

if __name__ == "__main__":
    s = SimpleXMLRPCServer.SimpleXMLRPCServer(('127.0.0.1',2017))
    s.register_function(system)
    s.serve_forever()

cat client.py
================================================ 
#!/usr/bin/env python
import xmlrpclib

if __name__ == "__main__":
    x = xmlrpclib.ServerProxy('http://localhost:2017')
    outstr = x.system("ls","-lah","/")
    print outstr

dimon555 ★★★★★ ()

Re: помогите написать несложную программку :)


Гугл говорит что это создание запостило это сообщение на множестве линукс форумов, на не на кодерских. Все линуксоиды - программисты?

owlmind ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.