000
11.01.2004, 10:47 Uhr
FloSoft
Medialer Over-Flow (Administrator)
|
Ich habe ein (dachte mir) portables c++ programm geschrieben, welche eine eigene Socket-klasse enthält. Nur, unter Linux funktioniert die Receivefunktion nie.
C++: |
int CSocket::Receive(char *cmd, int len) { int readen = 0; fd_set rfds; struct timeval tv; int retval;
memset(cmd,0,sizeof(cmd)); FD_ZERO(&rfds); FD_SET(m_hSocket, &rfds); tv.tv_sec = 15; tv.tv_usec = 0;
retval = select(1, &rfds, NULL, NULL, &tv); if (retval) { #ifdef WIN32 readen = recv(m_hSocket,cmd,len,0); #else readen = read(m_hSocket,cmd,len); #endif } cmd[readen] = '\0'; return readen; }
|
unter Linux ist readen immer 0, auch wenn eigentlich daten kommen müssten.
Ich versteh nicht warum immer der Timeout eintritt und er nix empfängt. -- class God : public ChuckNorris { }; |