Nie mam pomysłu na szybkie komunikowanie się programów.

Nie mam pomysłu na szybkie komunikowanie się programów.
Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:około godziny
  • Lokalizacja:Laska, z Polski
  • Postów:10056
0

No więc załóżmy że mam program-server na komputerze A, i program-klient na komputerze B.
program- klient (ich ilośc = n) łączy się z programem-serverem.
Taka jest teoria.
Praktyka jest taka, że szukałem najlepszego wyjścia. Sockety odpadają, bo działają tylko w jednej sieci, łączenie n komputerów w sieć, jest za bardzo czasochłonne. Wolałbym uniknąć dodatkowych programów takich jak Hamachi. Wpadłem na pomysł przesyłania komend przez server GG, ale wtedy Primo każdy musiałby mieć GG (A jest jakiś ułamek tych co nie mają), Secundo, musiali by nie zmieniać wersji gg, i dać mi hasło, Tertio, przy zakomunikowaniu się programów użytkownik usłyszałby sygnał wiadomości.

Czy ma ktoś pomysł jak to zrobić?

edytowany 2x, ostatnio: Riddle
byku_guzio
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 7 lat
0

"Sockety odpadają, bo działają tylko w jednej sieci" - bzdura. A myślisz, że gg jak działa? Robi hokus pokus i się komunikuje?


Riddle
Myślałem że wysyła dane do bazy...
byku_guzio
no pewnie też do jakieś bazy danych coś wysyła, ale w jakiś sposób to musi robić. Leci przez tcp/ip i jakoś daje rade...
massther
  • Rejestracja:ponad 16 lat
  • Ostatnio:prawie 9 lat
0
TomRiddle napisał(a)

No więc załóżmy że mam program-server na komputerze A, i program-klient na komputerze B.
program- klient (ich ilośc = n) łączy się z programem-serverem.
Taka jest teoria.

Typowa teoria architektury klient-serwer

TomRiddle napisał(a)

Sockety odpadają, bo działają tylko w jednej sieci

Lol, a to nowość. Gdzie to wyczytałeś? Albo zdefiniuj co rozumiesz pod pojęciem "jedna sieć". Jakoś http działa w jednej sieci Internet.

TomRiddle napisał(a)

łączenie n komputerów w sieć, jest za bardzo czasochłonne.

oj tam, oj tam. Zrób sobie sieć w architekturze gwiazdy :)

TomRiddle napisał(a)

Wpadłem na pomysł przesyłania komend przez server GG, ale wtedy Primo każdy musiałby mieć GG (A jest jakiś ułamek tych co nie mają), Secundo, musiali by nie zmieniać wersji gg, i dać mi hasło, Tertio, przy zakomunikowaniu się programów użytkownik usłyszałby sygnał wiadomości.

Głupi pomysł. Przestań już myśleć! :)

A teraz powolutku, co chcesz zrobić. I nie uda ci się zrobić przycisku [przejmuję świat], taki ma już obama :P

Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:około godziny
  • Lokalizacja:Laska, z Polski
  • Postów:10056
0

Pod pojęciem "jedna siec" są komputery podłączone do jednego servera.

Jak odpaliłem prowizoryczny program na socketach (podałem wewnętrzne IP), w szkolnej pracowni (tam są podłączone do jednego servera) to jakość działało.
Jak chciałem połączyc swój komputer z kompem kolegi to się nie udało.

A chce zrobić tylko kilka programów które się komunikują. W celach edukacyjnych

edytowany 2x, ostatnio: Riddle
byku_guzio
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 7 lat
0

Weź poczytaj coś o sieciach, protokole TCP/IP i będziesz wiedział ocb. Sieć trzeba odpowiednio skonfigurować i tyle - nic na to nie poradzisz


Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 9 godzin
0

Pewnie ten "serwer" nie miał publicznego IP, więc z zewnątrz się nie mogłeś podłączyć, albo miał firewalla, który odcinał twoje połączenia.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
byku_guzio
serwer nie koniecznie musi mieć publiczne ip ;) wystarczy odpowiedni forwarding portów
Riddle
Firewalla miałem wyłączonego, ale IP miałem wewnętrzne.
Wibowit
byku: W zasadzie port można potraktować jako dodatkowe 16 bitów adresu IP :P
Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:około godziny
  • Lokalizacja:Laska, z Polski
  • Postów:10056
0

Ale z was hipokryci. Co chwila mówicie, żeby ktoś chwile się zastanowił i spróbował sam rozwiązać problem a teraz "nie myśl tyle"...
bez sensu

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
1

@TomRiddle są rzeczy które można wymyślić i warto nad takimi główkować. Ale są też rzeczy których zwyczajnie trzeba się nauczyć. Zasady działania protokołów internetowych jak UDP czy TCP nie "wymyślisz". Tak samo jak nie "wymyślisz" sobie cyfr arabskich czy liter. To są rzeczy których trzeba się nauczyć.
To trochę tak jakby gość twierdził ze "w języku X nie da sie napisać Y bo jemu sie tak wydaje", wszyscy by twierdzili ze powinien poczytać na ten temat i się porządnie nauczyc X zamiast pisać głupoty, a ty byś wyburzył że każemy mu doczytać zamiast wspierać jego kreatywne myślenie...


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
Riddle
Nie mówię o tym... Jeżeli chcą żebym myślał, to niech nie mówią żebym nie myślał i odwrotnie.
massther
  • Rejestracja:ponad 16 lat
  • Ostatnio:prawie 9 lat
0

na pierwsze hasło socket tutorial
http://www.linuxhowtos.org/C_C++/socket.htm

http://www.mini.pw.edu.pl/~marcinbo/strona/download/tutorial.sockets.txt
i generalnie u tego gościa znajdziesz wzorcowy kodzik http://www.mini.pw.edu.pl/~marcinbo/strona/glowna/aunix.html w tutorialach masz sygnały, ipc, pliki, fifo, gniazda, wątki

Riddle
tylko szkoda że w c++
Riddle
...wole delphi
massther
A teraz to mi ręce opadły! A napisałeś gdzieś w jakim języku. Poza tym pewne ogólne zasady są takie same we wszystkich językach. Więc najpierw poznaj zagadnienie od strony teoretycznej.
Riddle
Napisałem w tagach.
massther
:/ eh te tagi są w jakimś od czapy miejscu że nie zwracam na nie uwagi
Riddle
no... pod pierwszym postem są, ciężko zauważć
massther
Nad pierwszym postem i jakimś bardziej oczojebnym kolorem czy coś byłyby bardziej widoczne :)
Riddle
(W moim rozumieniu, pierwszy post to post pytającego), więc pod pierwszym postem.
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)