sockets und Threads

17/08/2011 - 09:26 von Curtis Newton | Report spam
Hallo,

ich habe einen Clienten, der sich mittels TCP/IP mit einem Server
unterhàlt. Verbinde ich mich innerhalb eines Programmes mit einem Server
und kommuniziere in mehreren Threads (jeweils gesichert über Mutexe),
klappt alles.

Verbinde ich mich aber innerhalb eines Programmes mit mehreren Servern
(habe also mehrere sockets offen), hàngt die Verbindung irgendwann in
einen recv. Die anderen Verbindungen sind jeweils nicht betroffen, nur
die Kommunikation mit einem Server hàngt.

Was kann das sein? Wo kann das Problem liegen? Jemand irgendeine Idee,
wie man an den Fehler rankommen kann?

C.
 

Lesen sie die antworten

#1 Curtis Newton
17/08/2011 - 10:45 | Warnen spam
On 2011-08-17, Curtis Newton wrote:

Was kann das sein? Wo kann das Problem liegen? Jemand irgendeine Idee,
wie man an den Fehler rankommen kann?



Ich habe gerade im Aufrufstack geschaut. Ein Clientkommunikation hàngt
wieder im recv. Den Stack aber eins tiefer:

msvcr80d.dll!vsprintf_s(char * string=0x00000104, unsigned int sizeInBytesB063220, const char * format=0x00000001, char * ap=0x0281d58c) Zeile 261 + 0x17 Bytes C
ws2_32.dll!75156b87()
MxKit.dll!myTcpSocket::recieveblock(void * dst=0x02af7b28, unsigned int bytes_size59040) Zeile 497 + 0x1f Bytes C++


hàngt er in vsprintf.c in dieser Funktion:

int __cdecl vsprintf_s (
char *string,
size_t sizeInBytes,
const char *format,
va_list ap
)
{
return _vsprintf_s_l(string, sizeInBytes, format, NULL, ap);
}

string ist 0x00000104 (schlechtes Ptr)
sizeInBytes ist 42063220
format ist 0x00000001 (schlechtes Ptr)
ap ist 0x0281d58c

????


C.

Ähnliche fragen