【发布时间】:2020-05-05 23:12:32
【问题描述】:
我有这段代码用于验证数组缓冲区中的内容,但我总是在数组上获得不同的值,并且它使我的程序在它不是 supose 时也得到 56(ascii 上的 8),有人可以帮忙吗?
这会为要在文件 1 上读取的套接字发送一个缓冲区:
void send_stream(char buff[], int sockfdes)
{
if (write(sockfdes, buff, strlen(buff) + 1) == -1) {
perror("ERROR: envia_stream: simulador");
}
}
void prepare_message(int tipo, int id)
{
char buff[3];
buff[1] = id;
switch (tipo)
{
case CRIACAO_P:
buff[0] = '1';
//buff[2] = tempo; //HORA
send_stream(buff, sockfd);
break;
}
此文件 2 从套接字读取并放入缓冲区:
char buffer[5];
while(1)
{
read(novosockfd, buffer, sizeof(buffer));
if (buffer[0] == '8')//FIM
{
printf("Buffer[0]: %d \n", buffer[0]);
printf("Buffer[1]: %d \n", buffer[1]);
printf("Buffer[2]: %d \n", buffer[2]);
printf("Buffer[3]: %d \n", buffer[3]);
printf("Buffer[4]: %d \n", buffer[4]);
printf("\nSimulação terminou\n");
break;
}
}
}
【问题讨论】: