mam problem (TCP)

0

Robie chata i mam takie procedurki:

procedure TForm1.WyslijDoIP(IP, Txt: String);
var
i: Integer;
begin
for i:=0 to ServerSocket1.Socket.ActiveConnections-1 do
begin
if Server.Socket.Connections[i].LocalAddress=IP then
begin
Server.Socket.Connections[i].SendText(Txt);
end;
end;
end;

procedure TForm1.WyslijDoWszystkich(Txt: String);
var
i: Integer;
begin
for i:=0 to Server.Socket.ActiveConnections-1 do
begin
Server.Socket.Connections[i].SendText(Txt);
end;
end;
I mam z tym problem tzn to akurat działą ale nie wiem jak zrobic nicki i jak zrobic Privy myślałem ze z nickami tak można zrobic ze pierwszy odebrany txt od klienta z czołowym słowem NICK na poczatku a drugim słowem to jego nick wtedy dodawwany do listboxa ale jesli w listboxie jest juz taki nick odsyła do klienta odpowiedz ze nick juz jest czylli text np "NICK BAD" jak zrobic to z nickami czy ktoś ma jakieś pomysły może jakiś kod?

0

Wysyłaj np:

S:='Nick@IP@OS@TEXT';

i w jednym stringu masz nick, ip, system operacyjny, text i co tylko dusza zapragnie, potem potnij go pod wzgledem znaku @ i już, styl dowolny.

0

No właśnie z tym mam problem i dlateog potrzebuje kompletnego kodu probowałem z Copy ale nie wychodzi może ktoś ma inne pomysły albo wie jak to zrobić?

//Kazdy potrzebuje kompletnego kodu,ale niewielu wie ze musi go samemu napisac na pdst wskazowek innych i tego co sie znajdzie w zasobach serwisu

0

o dzieleniu wg znaku to kiedyś sam tutaj pisałem i coś takiego jest w kodach źródłowych: Explode autorstwa MrSquella i zawarte w b4p Split Adama B.

0

Dzielenie może wyglądać na przykład tak:

type TInfo = record
nick, ip, os, tekst: string;
end;

function podziel(text: string): TInfo;
var s: string;
begin
s:=text
podziel.nick:=copy(s, 1, pos('@', s)-1);
delete(s, 1, pos('@', s));
podziel.ip:=copy(s, 1, pos('@', s)-1);
delete(s, 1, pos('@', s));
podziel.os:=copy(s, 1, pos('@', s)-1);
delete(s, 1, pos('@', s));
podziel.tekst:=s;
end;

Wtedy funkcja podziel('[email protected]@M$Win95@HeHe Działa!') zwróci ci rekorda typu info = {'Ja', '192.168.1.254', 'M$Win95', 'HeHe Działa!'} - tak zapisane trochę w stylu C, ale chyba zrozumiesz o co chodzi.
Potem możesz zrobić na przykład (wiem, że to nie maa sensu, ale taki przykład):

var info1: TInfo;
ShowMessage(info1.nick+' z adresu '+info1.ip' pod systemem '+info1.os+' wysłał wiadomość: '+info1.tekst);

Pozdrawiam i mam nadzieję, że to momoże. [hurra]

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