PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kann mir einer helfen?


Bolle
09.05.2002, 11:14
ich hab hier mal nen code der nich will wie ich..
mal was neues ;)

char buf[260];
rc=recv(connectedSocket,buf,256,0);
while(!disc)
{
while(x)
{
rc = 0;
rc=recv(connectedSocket,buf,256,0);
if( rc < 0)
{ x = false; }
}
if( rc == SOCKET_ERROR)
{
cout << &quot;es konnten keine daten empfangen werden &quot; << WSAGetLastError() << endl;
disc = true;
}
else
while(!x)
{
cout << buf << endl;
x = true;
}
}

soll daten empfangen und so lange keine daten kommen stillstehen, aber wenn wieder welche kommen die dann ausgeben.
nur will halt nicht, stoppt immer und gibt keine nachrichten aus, auch wenn neue daten kommen.
is merkwürdig. vielleicht hat ja einer ne idee.


xOOn
09.05.2002, 16:21
wie stillstehen, kann er nicht einfach alle daten die er kriegt ausgibt

char buf[260];
rc=recv(connectedSocket,buf,256,0);
while(!disc)
{
rc = 0;
while(rc == SOCKET_ERROR && exit!=true)
{
rc=recv(connectedSocket,buf,256,0);
if( rc > 0)
cout << buf;
}



exit ist die abbruchbedingung die ich nicht implementiert habe

bei deinem prog scheue ich nichtganz durch

Bolle
09.05.2002, 18:22
danke für deine hilfe.
hab aber das probelm gefunden, lag am client
das sollte der server sein

Bolle
10.05.2002, 10:48
noch ne frage, gibt das ne möglichkeit mehrere funktionen gleichzeitig laufen zu lassen?
also, eine zum beispiel die sendet und eine andere die empfängt? also daten aus dem lan/netz empfängt sendet.

und noch was zu meinem prog.
die erste schleife wird durchlaufen, solange kein fehler auftritt. die zweite wird durchlaufen, solange keine neuen daten im char arr buf sind. if == socketerror is halt wenn der socket fehlerzurückgibt beendet er die hauptschleife. und die letzte schleife wird nur dann ausgeführt, wenn neue daten da sind. btw ich hab grad bei durchlesen schon selber fehler endeckt. ;)

xOOn
11.05.2002, 11:18
noch ne frage, gibt das ne möglichkeit mehrere funktionen gleichzeitig laufen zu lassen?

ja dazu gibt es Threads (windows), aber das kann man nicht in 3 saetzen erklaeren, dazu findem man im netz abere massenweise zeugs, wie genau du das anstellen musst kann ich dir nicht sagen, weil ich bisher um uebers netz zu kommunizieren immer komponenten verwendet habe

Bolle
11.05.2002, 11:38
ok, ich werd mal gucken, aber noch ne frage. was meinst du mit komponenten? ;) sry, hab aber nich grad viel ahnung von dem netzwerkzeugs und c++

xOOn
11.05.2002, 15:22
komponenten gibts in delphi und c++builder, unter vb, vc++ glaub ich heissen die activex

einfach gesagt, programmteile, welche sich einfach nutzen lassen