Erster versuch mit Socket und Cpp --> Absturz

darkkiller_

Grünschnabel
Hallo ich hab momentan einen einfachen IRC-Client-Versuch.
Doch leider stürtzt mir dieser bei einem "recv" ab. ?

Kann mir einer hier bitte auf die sprünge helfen ?

Code:
//---------------------------------------------------------------------------

#include <vcl.h>
#include <windows.h>
#include <winsock2.h>
#include <process.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
int erfolg;
SOCKET sock;
SOCKADDR_IN addr;

AnsiString ip=Edit1->Text;
AnsiString port=Edit2->Text;
AnsiString nickname=Edit3->Text;
AnsiString name=Edit4->Text;
AnsiString raum=Edit5->Text;

Memo1->Text="Verbindung wird hergestellt...\r\n\r\n";

WSADATA wsa;
WSAStartup(MAKEWORD(2,0),&wsa);

sock=socket(AF_INET,SOCK_STREAM,0);

memset(&addr,0,sizeof(SOCKADDR_IN)); // zuerst alles auf 0 setzten
addr.sin_family=AF_INET;
addr.sin_port=htons(6667); // port
addr.sin_addr.s_addr=inet_addr("127.0.0.1"); // ip

erfolg=connect(sock,(SOCKADDR*)&addr,sizeof(SOCKADDR)); //verbinden mit dem sock
if(erfolg==SOCKET_ERROR) Memo1->Text="Fehler beim Verbinden..."; //Fehler ?
else Memo1->Lines->Add("Verbunden zu " + ip); //Alles ok ?

send(sock, nickname.c_str(), nickname.Length(), 0); //Senden des Usernames

char buf[1024];
if (recv(sock, buf,1024,0) == -1) Memo1->Lines->Add("Fehler");
else Memo1->Lines->Add("Ok");
}


//---------------------------------------------------------------------------
 
Der Code schaut eigentlich ganz ok aus. Bist du dir sicher, dass der Absturz dem "recv()" anzulasten ist und nicht etwa dem "Memo1->Lines->Add()"?

Gruß
MCoder
 
So weit ich es nun gefunden habe funktioniert dass nicht mit dem NettalkIRCD IRC-Server.
:( keine ahnung warum doch sobald ich den server des tutorials hernehme funktionierts...
danke dennoch
 
Zurück