Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Сети > Проблема с send


Автор: st063 20.10.2009, 23:21
Доброго времени суток. 
Есть клиент отправляющий на сервер три сообщения подряд, но третье сообщение(messagebuf) до сервер не доходит. Вот код: 
Код

            namebuf=(char *)malloc(sizeof(char)*(strlen(name)+1));
            strcpy(namebuf,name);
            namebuf[strlen(name)]='\0';
            send(clientsocket,namebuf,strlen(name)+1,0);

            nameclient=(char *)malloc(strlen(NICKNAME)+1);
            strcpy(nameclient,NICKNAME);
            nameclient[strlen(NICKNAME)]='\0';
            send(clientsocket,nameclient,strlen(nameclient)+1,0);

            messagebuf=(char *)malloc(sizeof(char)*(strlen(message)+1));
            strcpy(messagebuf,message);
            messagebuf[strlen(message)]='\0';
            send(clientsocket,messagebuf,strlen(messagebuf)+1,0);        


Проблему можно решить добавив перед отправкой messagebuf  задержку где-то на полсекунды (Sleep(500)).  Но какое-то это странное решение, не существует какого-то более адекватного?

Автор: DrHex 21.10.2009, 00:03
Серверная сторона не успевает за клиентом???
Сколько проходит времени после приема второго сообщения но перед попыткой чтения третьего(на сервере)?????

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)