Ideologia wysyłania pliku przez Socket'y

0

No więc uwziąłem się na przesyłanie plików przez ClientSocket i ServerSocket
gdyż, miałem problem NMStrm i NMStrmServ ponieważ kiedy wysyła się plik
to trzeba podać IP tego do kogo chce się wysłać, a jak ktoś ma IP
nie-rutowalny to wtedy nie działa.

Wydawało mi się że z Socketami będzie ok bo ktoś z takim IP morze zainicjować
połączenie, i wtedy morzna by swobodnie w obie strony przesyłać co się chce.

Doszedłem teraz do wniosku że to idiotyczne bo wtrakcie
przesyłania pliku nie morzna by wysyłać tekstu.

No i mam pytanie czy w NMStrm i NMStrmServ morzna jakoś przeskoczyć
ten problem, czy tam są w ogóle jakieś gniazdka i da się nawiązać
połączenie?

Albo czy dało by się jakoś połączyć działanie wszystkich komponentów
tzn korzystać z połączenie socketów a wysyłąć przy pomocy NMStrm?

piechnat

0

Nie wiem czy dobrze zrozumiałem, ale wystarczy wsadzić dwa clienty jeden będzie wysyłał text drugi ewentualnie plik.

0

lamer napisał:
&gtNie wiem czy dobrze zrozumiałem, ale wystarczy wsadzić dwa clienty jeden będzie wysyłał text drugi ewentualnie plik.

nom - chyba masz racje - kazdy client utworzy inny port i wtedy jeden bedzie do wiadomosci, a inny do plikow (moze sie myle).--- - -
Roszi

0

Jeżeli mówicie o Socketach to tajemnica przesyłania plików jeszcze nie została zgłębiona. A jeżeli chodzi NMStrm to trzeba podać IP,
chodzi mi o to że jak ktoś ma nie rutowalny no nie morzna się znim połączyć.

A zresztą napiszcie coś więcej morze macie jakiś genilne rozwiązanie.

piechnat

0

nie znam przypadku, w którym rzeczownik 'morze' miałby formę 'morzna' :D :P {browar} {brawo} --- - -
Roszi

0

Roszi a slyszlales kiedys o dyslekcji :[[ Zamin bedziesz kogos oceniac zajmij sie sobia. U kazdego mozna znaleŹĆ cos z czego mozaby sie posmiac. --pozdrawiam PEDROS {hello}
Delphi6

0

Roszi napisał:
nie znam przypadku, w którym rzeczownik 'morze' miałby formę 'morzna' :D :P {browar} {brawo}
&gt
&gt--
&gt- - -
&gtRoszi
Ja też

0

No dobra zmieniam taktykę, :)
Dla tego kto mi napisze program co będzie przesyłał pliki na adresy nie-rutowalne.
Załatwie konto z PHP + MySQL (12MB) na rok za darmo :)

piechnat

0

piechnat napisał:
Jeżeli mówicie o Socketach to tajemnica przesyłania plików jeszcze nie została zgłębiona. A jeżeli chodzi NMStrm to trzeba podać IP,
&gtchodzi mi o to że jak ktoś ma nie rutowalny no nie morzna się znim połączyć.
&gt
&gtA zresztą napiszcie coś więcej morze macie jakiś genilne rozwiązanie.
&gt
&gtpiechnat

Myślę o tym często i tylko wymyśliłem (bo jeszcze nie zrealizowałem).

Potrzebne jest jeszcze jedno ogniwo o stałym IP (gdy ma swoją domenę jeszcze lepiej) nazwijmy je "rejestr"
Tam aktywny użytkownik przesyła aktualne namiary na siebie, jest zarejestrowany i ma parametry, że jest akurat w sieci.
Ten kto chce się z nim skontaktować łaczy się najpierw z rejestrem i jeżeli odbiorca aktywny to ma już jego IP czy tam co potrzeba.
Sesję nawiązuje już bez pośrednictwa rejestru.

Taki system pozwala na przemieszczanie się po dowolnych komputerach mając jeden nick.

0

&gtSesję nawiązuje już bez pośrednictwa rejestru.

wszystko by było ok ale nie łapie tej linijki wyżej,
możesz wytłumaczyć mi jak nawiązuje tą sesję?

piechnat

0

A co byście powiedzieli gdyby do przesyłania plików wykorzystać FTP? Powinno iść w obie strony przy połączeniu w jedną stronę.---------------------------
Delphi 6

Pozdrówka

0

Pedros napisał:
Roszi a slyszlales kiedys o dyslekcji :[[ Zamin bedziesz kogos oceniac zajmij sie sobia. U kazdego mozna znaleŹĆ cos z czego mozaby sie posmiac.
&gt
&gt--
&gtpozdrawiam PEDROS {hello}
&gtDelphi6

no sorry stary (pewnie nie wyłapiesz tego postu, ale gg nie chce Ci spamowac :) ), ale ten wyraz to kult wszystkich ortofilów ("teraz taka era komputerow bla bla, ale jak taki komputer będzie wiedział czy chodzi ci o 'może', czy 'morze' ...). Przepraszam jeśli Cię uraziłem :-* {browar} --- - -
Roszi

0

piechnat napisał:
&gtSesję nawiązuje już bez pośrednictwa rejestru.
&gt
&gtwszystko by było ok ale nie łapie tej linijki wyżej,
&gtMorzesz wytłumaczyć mi jak nawiązuje tą sesję?

Jeżeli dobrze zrozumiałem:
problem tkwi w zdobyciu adresu ip, adresu gościa po drugiej stronie, który może się zmieniać.
Wymyśliłem, że rejestr to miejsce, gdzie składowane są namiary na ten drugi komputer. Adres rejestru nie zmienia się i jest znany wszystkim uczestnikom tego rodzaju połączeń, które chcesz napisać.
Łączenie: jak zwykle za pomocą Socket'ów.
Mogą być dwa połączenia:

  • informacyjne - do przesyłania różnych komunikatów, poleceń itp. (jeden port),
  • do przesyłania plików (drugi port).
0

&gtJeżeli dobrze zrozumiałem:
&gtproblem tkwi w zdobyciu adresu ip, adresu gościa po drugiej stronie, który może się zmieniać.

tak właściwie to główny mój problem tkwi w tym że ktoś ma adres nie-rutowalny
i nie można się z nim połączyć :(
Nawet jeśli zrobimy tak jak muwisz, to i tak on by się musiał połączyć
tyle że problem przesyłąnia pliku przez Sockety jest nie rozwiązany.
Ale ostatnio zacząłęm bawiż się komponentami z zakładki Indy.
I chyba server FTP rozwiązuje problem, bo można przypomocy klienta
ściągać i wysyłąć plik, no ale już nie wiem co pisze, może lepiej zaczne
uczyć się grać na mandolinie {glowa}

piechnat

0

No dobra to doszlismydo punktu gdzie dajemy sobie spokoj z socketami i przerzucamy sie na Serwer FTP. No i fajnie ale ja nadal nie mam pojecia ja przeslac plik przez siec :-) Wiec jak ktos moglby cos napisac konkretnego jak dokonac tego co wielu chcialby wiedziec bede bardzo wdzieczny :-)--pozdrawiam PEDROS {hello}
Delphi6

0

piechnat napisał:
&gtże ktoś ma adres nie-rutowalny
&gti nie można się z nim połączyć :(

Wyjaśnij mi co rozumiesz przez adres nie-rutowalny?

0

Chodzi chyba o to, że ktoś łączy się za pomocą sieci lokalnej i nie ma zewnętrznego IP. A może się mylę?---------------------------
Delphi 6

Pozdrówka

0

thenkles napisał:
Chodzi chyba o to, że ktoś łączy się za pomocą sieci lokalnej i nie ma zewnętrznego IP. A może się mylę?

Dokładnie oto mi chodzi, co daje wrezultacie że uruchamiam sobie genialny
program z tej strony: sendfile działąjący za pomocą komponentu NMStrm i Serv
i kupel co ma wewnęczny IP też go uruchamia, i on wpisuj mój IP zewnęczny i przesyła mi pliki a ja wpisuje jego wewnęczny IP i moge mu naskoczyć :)

I to jest właśnie konkluzja tego całego postu {glowa}

piechnat
mandolina for ever

0

Pedros napisał:
No dobra to doszlismydo punktu gdzie dajemy sobie spokoj z socketami i przerzucamy sie na Serwer FTP. No i fajnie ale ja nadal nie mam pojecia ja przeslac plik przez siec :-) Wiec jak ktos moglby cos napisac konkretnego jak dokonac tego co wielu chcialby wiedziec bede bardzo wdzieczny :-)

Jeśli cie to interesuje to wiem jak przesłać przez Sockety
plik do 8 KB :))

piechnat

0

Dzieki za propozycja ale ja chcialbym aby moznabylo przesylac pliki takich normalnych rozmiarow (ok5-10mb przynajmniej)--pozdrawiam PEDROS {hello}
Delphi6

0

Pedros napisał:
Dzieki za propozycja ale ja chcialbym aby moznabylo przesylac pliki takich normalnych rozmiarow (ok5-10mb przynajmniej)

no to może jeśli jesteś zawansowanym Delphiniarzem to
ją sobie przerobisz, bo właściwie to można by przesłąć
wszystko ale do pliku trafia sieczka, złożona z róznych komend
przeplatanych z prawdziwym plikiem, myślę że dobrym rozwiązaniem
było by na początku każdego pakietu robić nagłówek, żeby pakiet wiedział
do którego pliku ma się dopisać, i czy w ogóle ma się dopisywać, ale
to jest przesyłąne buforem i nie wiem jak takowy nagłówek dodawać a potem
z niego usuwać , i żeby pakiety zapisały się w odpowiedniej kolejności :(

piechnat

0

Bardzo chetnie bym to zrobil ale wydaj mi sie ze az na tylko to nie opanowalem Delphi :( . Dobrze gdyby sie ktos znalazl ktoby to przerobil i opubilkowal na forum ten kod. Wtedy lud wznioslby go na wyzyny chwaly :-). A co do tego kodziku do przesylania plikow 8kb to moze jednak przslij. Zobacze go moze dokonam odkrycia rownorzednego z Kolumbem :-)--pozdrawiam PEDROS {hello}
Delphi6

0

Tak nawiasem mówiąc to nie wiem czy wysyłanie plików przez sockety jest możliwe. Właśnie sobie przypomniałem o bug'u w standartowym komponencie, polegał on na tym że nie wymazywał danych z buforu, co za tym idzie ten sie szybko zapelnial i wyskakiwal blad. Wiem ze na pewno ten blad wystepowal przy laczeniu sie, po jakis 250 probach polaczenia trzeba bylo program jeszcze raz uruchomic.

1 użytkowników online, w tym zalogowanych: 0, gości: 1