C++ Sockets, broken pipe

Tobi-Wan

Grünschnabel
Hallo alle,

ich schreibe gerade ein Transportmodul für ein größeres Projekt, das den Versand von höherschichtigen PDUs über TCP und Sockets ermöglichen soll. Empfangen von Daten klappt auch schon prima, aber beim send() auf einen (schon connected) socket kommt immer der "broken pipe" Fehler. Kann mir jemand sagen woran das liegen kann?

Codeauschnitt
/>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
for (uint32 bytes_sent= 0;
bytes_sent < msgsize;
bytes_sent+= ret)
{
// socket send
ret= ::send(assoc->socketfd,
msg.get_buffer()+ bytes_sent,
msgsize- bytes_sent,
MSG_NOSIGNAL);
cout << "Error: " << strerror(errno) << endl;
if (ret < 0)
{
result= TCP_SEND_FAILURE;
break;
} // end if (ret < 0)
} // end for
/<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Hierbei liefert msg.get_buffer() einen Pointer auf einen char-Puffer zurück, msgsize ist die Größe der Nachricht "msg"

Schöne Grüße,
Tobias
 
Zurück