whois

0

Czy ktoś wie jak napisać klienta whois na client socket tak aby miec 1 przycisk i jak go klikne to sie laczy i wysyla sam zapytanie ( nie na 2 przyciskach - laczenie i pytanie osobno)
Jak dam na 1 przycisk to wywala mi blad :(

0

jaki ?

0

jeśli dobrze pamiętam to w INDY jest komponent klijenta WHOIS... Totarczy, bo reszte chyba możesz dojść sam...

0

Lipa bo nie moge uzyć indy(tam m idziała) ale musze to zrobic na soketach :)
a błąd to "ERROR input line too long" jest to błąd jaki zwraca mi whois.ripe.net
jak wysle mu komendę automatycznie po podłaczeniu (czekanie jakis czas nie pomaga)

Programik piszę w c++ (borland) ale na forum c+= nikt nie ma pomysłu w dephi jest prawie tak samo :)

Tu daje mój kod

AnsiString who="";
int wys=0;
bool se=false;

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
se=true;
ClientSocket1->Active=true;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
char buf[1024];

strcpy(buf , Form1->Edit1->Text.c_str());
ClientSocket1->Socket->SendBuf(buf,sizeof(buf));
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ClientSocket1Read(TObject *Sender,
TCustomWinSocket *Socket)
{
wys++;
who=who+Socket->ReceiveText();

if (se==true)
if (wys==1) //jak dostanie 1 pakiet ze sie polaczyl to wysylam zapytanie
{
char buf[1024]={0};
strcpy(buf , Form1->Edit1->Text.c_str());
ClientSocket1->Socket->SendBuf(buf,sizeof(buf));
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Disconnect(TObject *Sender,
TCustomWinSocket *Socket)
{
RichEdit1->Text=who;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Connect(TObject *Sender,
TCustomWinSocket *Socket)
{
who="";
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)
{
se=false;
ClientSocket1->Active=true;
}
//---------------------------------------------------------------------------

0

Nie przeanalizowałem dokładnie, ale już się domyślam, w czym rzecz. A mianowicie próbujesz wysyłać zapytanie, ZANIM się połączysz. To znaczy zaczynasz się łączyć i od razu wysyłasz zapytanie i to powoduje błąd. Spróbuj zapytanie wysłać w OnConnect (nie wiem, czy w C++ jest tak samo, ale jakiś odpowiednik Delphi'owego OnConnect musi być.

0

Nie :)
Niestety jestem juz połączony to nie to ;( na początku też tak myślałem :)

Chodzi o to ze jak się połączęto odbieram 1 text Od razu bo serwer wysyla mi powitanie
i w onread dalem ze jak to odbierze to wysylam u zapytanie o dane domeny
ale nie wiem dalczego powoduje to błąd
ale jak dam to samo zapytanie w osobnym przycisku to działa

Nie mam juz pomysłow co to może byc ;/

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