[Comm] read from socket
Nick S. Grechukh
=?iso-8859-1?q?ngrechukh_=CE=C1_ua=2Efm?=
Пт Фев 11 15:41:33 MSK 2005
вот что-то в этом роде получилось, поругайте:
typedef struct {
char signature[8];
int command;
size_t msgsize;
} ctrl_header;
int operate(int sock, sq_command command, void * response, size_t len_buff)
{
char *recvbuf;
int n;
ctrl_header hdr;
memcpy(hdr.signature,"SQ1.0.00\n",10);
hdr.command=1;
hdr.msgsize=0;
n = send(sock, &hdr, sizeof(hdr),0);
n = recv(sock, &hdr, sizeof(hdr),MSG_WAITALL);
if ((n==sizeof(hdr)) && (strncmp(hdr.signature,"SQ1.0.00\n",10)==0)){
if (hdr.msgsize>0){
if ((recvbuf=malloc(hdr.msgsize))!=NULL){
if ((n = recv(sock,recvbuf, hdr.msgsize, MSG_WAITALL))==hdr.msgsize){
if ((response!=NULL) && (len_buff>=0)) {
memcpy(response,recvbuf,len_buff);
}
} else {
//maybe socket error, count of received data<than promised
}
free(recvbuf);
} else {
// allocation error
};
}
} else {
// maybe again socket error, or there is no squash on that side...
}
return(1);
}
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 190 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/community/attachments/20050211/e13f7dee/attachment-0003.bin>
Подробная информация о списке рассылки community