Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2010, 18:54   #1
Sam Gold
Форумчанин
 
Аватар для Sam Gold
 
Регистрация: 26.03.2010
Сообщений: 538
Восклицание Очередь std::queue

Здравствуйте! Столкнулся с такой проблемой: на сервере в очередь помещаю объекты класса Message (from,to,message,socket_from,socket _to), затем они извлекаются из очереди и отправляются нужному клиенту, при этом на клиенте вместо имени отправителя принимается текст сообщения, а вместо сообщения пустота т прога вылетает
Код:
//=========на сервере=================
typedef map <string ,SOCKET > LIST_USERS ;
LIST_USERS lists;
std::queue<Message> QUE;
while(key<queue_size){
        char *buffer;
        buffer=(char *)malloc(100);
				
        char *buffer_name;
        buffer_name=(char *)malloc(10);
				
        memcpy(&buffer_name,&QUE.front().get_from(),10);

        memcpy(&buffer,&QUE.front().get_mess(),100);
				
        send(lists[QUE.front().get_target()],buffer_name,10,0);
				
        send(lists[QUE.front().get_target()],buffer,100,0);
			   
         key++;
         QUE.pop();
			   
}

//=========на клиенте================
char *siz;
siz=(char *)malloc(10);
recv(client,siz,10,0);
int queue_size=atol(siz);
	  
for(int j=0;j<queue_size;j++){
    char  *buf_r;
    buf_r=(char *)malloc(100);
	    
    char  *buf_nam;
    buf_nam=(char *)malloc(10);
     
    recv(client,buf_nam,10,0);
    recv(client,buf_r,100,0);

    cout<< "Upload new message  from "<<buf_nam<<" : " << buf_r <<endl;
    free(buf_r);
    free(buf_nam);
}
Единственный способ стать умнее - играть с более умным противником.

Последний раз редактировалось Sam Gold; 02.05.2010 в 18:59.
Sam Gold вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
E2015 Ambiguity between 'std::log(double)' and 'std::log(long double)' Namolem Помощь студентам 3 02.04.2011 20:22
Простая программа с очереддю(Queue,STL,C++) Olya90 Помощь студентам 4 06.05.2009 23:30
STACK и QUEUE vo_sa Общие вопросы C/C++ 3 25.03.2009 11:45
class queue Freer Общие вопросы C/C++ 6 16.01.2009 00:05