000
29.01.2007, 23:03 Uhr
J-jayz-Z
Perl Crack ala Carte (Operator)
|
Hi, ich hab hier ein kleines Problem, in einer Serveranwendung. Und zwar wird die Action in meiner Nachrichtnschleife nicht beim ersten mal ausgeführt. Ich hab das mal auf ein minimalstes beschränkt. Wenn man sich mit telnet auf Port 1200 connected, sieht man, das jede Eingabe wiederholt wird - nur die erste nicht. Und ich seh den Fehler nicht ...
C++: |
void accept() { this->AcceptSocket = SOCKET_ERROR; while( this->AcceptSocket == SOCKET_ERROR ) { this->AcceptSocket = ::accept( this->ListenSocket, NULL, NULL ); } std::cout << "Client connected." << std::endl; this->ListenSocket = this->AcceptSocket; while(true) { char buffer[1024]; int bytes = recv(ListenSocket, buffer, sizeof(buffer) - 1, 0); buffer[bytes] = '\0'; std::string foo = buffer; send(ListenSocket, foo.c_str(), foo.length(), 0); } }
|
Das wird in einer while(true) schleife aufgerufen -- perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="66756e2d736f66742e6465"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"' |