maciko Opublikowano 21 Czerwca 2005 Zgłoś Opublikowano 21 Czerwca 2005 (edytowane) Piszę program do przesyłania plików między dwoma komputerami. Nie jednak jak zawrzeć połączenie między dwoma komputerami. Próbowałem użyć ClientSocket i ServerSocket ale nic z tego nie wyszło. Czy mógłby ktoś krok po kroku opisać jak trzzeba napisać procedure zawarcia połączenia?? Próbowałem coś takiego: unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ScktComp;type TForm1 = class(TForm) Client: TClientSocket; Server: TServerSocket; Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure ServerClientRead(Sender: TObject; Socket: TCustomWinSocket); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);beginClient.Port:=32167;Client.Host:='192.168.3.53'Client.Active:=true;CLient.Socket.SendText('DZIAŁA');Client.Active:=false;end;procedure TForm1.FormCreate(Sender: TObject);beginServer.Port := 32167;Server.Active:=true;end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);beginServer.Active:=false;end;procedure TForm1.ServerClientRead(Sender: TObject; Socket: TCustomWinSocket);beginForm1.Caption := Server.Socket.ReceiveText;end;end. Edytowane 21 Czerwca 2005 przez maciko Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
piterus90 Opublikowano 21 Czerwca 2005 Zgłoś Opublikowano 21 Czerwca 2005 (edytowane) A jakies konkretne bledy ci wyrzuca? Porty na firewallach otwarte? I moze ten kod od przesylania tekstu, wrzuc w zdarzenie, wtedy masz pewnosc, ze Ci sie polaczyl, bo teraz nie wiadomo czy jest polaczony czy nie. Oczywiscie domyslam sie, ze klient jest na tym IP odpalony i gotowy do pracy(Socket otwarty). Po za tym, po co kilka razy otwierasz ten sam socket. Wystarczy raz. Nie zapominaj, ze socket musi byc caly czas otwarty, inaczej nie dotra do niego rzadne dane/nie wysle danych. Edytowane 21 Czerwca 2005 przez piterus90 Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
maciko Opublikowano 21 Czerwca 2005 Zgłoś Opublikowano 21 Czerwca 2005 Ten program ma być zarazem klientem jak i serverem. Po naciśnięciu guzika na jednym kompie na drugim wyala błąd socketa. Czy żeby otworzyć socket należy tylko napisać "client.active:=true"? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
piterus90 Opublikowano 21 Czerwca 2005 Zgłoś Opublikowano 21 Czerwca 2005 Tak, wystarczy taka linijka. Oczywiscie, gdy masz ustawiony juz IP i port. Mozna to zrobic z poziomu Inspektora Objektow albo kodu. Jesli mozesz to podaj numer bledu Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
maciko Opublikowano 22 Czerwca 2005 Zgłoś Opublikowano 22 Czerwca 2005 "Asynchronus socket error 10061" Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
piterus90 Opublikowano 22 Czerwca 2005 Zgłoś Opublikowano 22 Czerwca 2005 Czyli sie z serwerem nie kontaktuje. Sprawdzales firewalle? W obydwie strony tak? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
maciko Opublikowano 22 Czerwca 2005 Zgłoś Opublikowano 22 Czerwca 2005 (edytowane) U siebie mam wyłączonego, nie wiem jak u kumpla, ale podobno wziął na zezwalanie. P.S. Wyłączyliśmy z kumplem firewalle, próbowałem się połączyć też na zewnętrznym ip ale nic z tego. Edytowane 22 Czerwca 2005 przez maciko Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
piterus90 Opublikowano 22 Czerwca 2005 Zgłoś Opublikowano 22 Czerwca 2005 Hmmm... z grubsza powinno sie laczyc... Sproboj moze port zmienic... Moze juz cos na nim siedzi, chociaz watpie, bo jakis egzotyczny, czyli nic na nim nie wisi.. Ale dla pewnosci :) Jeszcze mozesz sprobowac odpalic u siebie i clienta i serwera(czyli dwie aplikacje) i probowac sie wpiac na 127.0.0.1 . Jak podziala, znaczy ze cos u kumpla, jak nie to u ciebie albo u obydwu :] Pozdrawiam, piterus PS. Jak cos, to pisz na moje gg: 2448962, moze cos mi sie uda jeszcze wykombinowac Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...