mam w TServerSocket coś takiego
server.socket.connections[80.50.36.77].sendtext('das');
tylko zamiast IP jest numer połączenia a ja nie wiem jak sprawdzić jaki IP ma jaki numer, ten kto pracował na socketach bedzie wiedział o co chodzi jest taki problem że jak zrobie
server.socket.connections[2].sendtext('das');
to das wyśle mi do drugiego w kolejności podłączonego klienta
jak zrobić tzn jak sprawdzić jakie IP ma jaki numer PLIS <font color="red">POMÓŻCIE!!!</span>
Tablice...
Prosze konkretniej!
Prosze konkretniej!
tablice dwuwymiarowe
ROTFL ssorry nie mogłem sie powstrzymać ;p ;p ;p
lofixowi chodzi o to (chyba) zebys zapisywal do tablicy numer podlaczonego komputera i jego ip lub nazwe
type cztery = record
opek : array[0..3] of integer;
end;
type tkomputer = record
numer : integer;
ip : array[0..3] of integer; //chyba byte wystarczy ale nie wole sprawdzac
nazwa : string;
end;
var
num_komp : array[0..99] of tkomputer;
//tutaj jeden haczyk ustawia mze max podlaczen moze byc jedynie (hmm jedynie) 100
komp_count : integer = 0; //potrzebne przy wyliczeniu
function reteive_kompinfo : tkomputer;
function str_to_ip :
function reteive_kompinfo : tkomputer;
var
opek : tkomputer;
ip : string;
begin
//teraz nie wiem czy sie uzywalo ServerSocket1.Socket.remotehost czy cos innego, ale uzywam remote
numer := komp_count;
nazwa := ServerSocket1.Socket.remotehost;
ip := ServerSocket1.Socket.remoteaddres;
end;
pozniej w onclientconnect
begin
inc(komp_count);
if komp_count > 100 then begin showmessage('Limit połączeń nie wie ograniczony, przerwany?'); exit;end;
num_komp[komp_count] := reteive_kompinfo;
end;
kurde dalej mi sie psiac nie chce psize to z pamieci i nie wiem jak delphi bedzie reagoawc itp. lol ze ja to w ogole zaczalem pisac :>
glupi chyba jestem
Sprawdza się : ServerSocket1.Socket.Connections[numer].RemoteAddress;
Nie wiem czy oto ci chodziło. [cya]
rotfl omg imo lol
Nie radzę robić tego na adresie IP, bo np. kilka osób się może łączyć zza NATu, albo ktoś może uruchomić w klienty na kompie. Lepiej użyć uchwytu połączenia TCustomWinSocket.SocketHandle.
Więc po pierwsze: Delphi zaczyna liczenia od 0, więć jeśli napiszesz Connections[2], to dla Delphiego jest to połączenie 3cie. Zresztą mam podobny problem. Ale jeszcze myśle nad rozwiązaniem ;-)
<font color="green">Więc po pierwsze: Delphi zaczyna liczenia od 0, więć jeśli napiszesz Connections[2], to dla Delphiego jest to połączenie 3cie.</span>
To deklarujesz:
<font color="blue">tablica: array [1..</span> itd..
zamiast:
<font color="blue">tablica: array [0..</span>
for i := 0 to server.Socket.ActiveConnections -1 do
begin
If server.Socket.Connections[i].RemoteAddress = '80.50.36.77' then
server.socket.connections[i].SendText('das');
end;
i voila, a jeśli chodzi i identyfikowanie połączeń z tego samego IP to robi się to sprawdzając z jakiego portu łączy się klient.
server.Socket.connections[i].RemotePort