У меня возникли проблемы с отправкой строки, по одному символу за один раз через соединение sock_stream. Причиной этого является то, что я пытаюсь отправить несколько строк, которые составляют около 70000 символов за раз. Кажется, что для функции записи, которую я пытался использовать, требуется строка.Как отправить строку, один символ за один раз через sock_stream
for(i=0;i<BUF_SIZE;i++)
{
write(sockfd,plaintext[i],1);
if(plaintext[i]=='0')
break;
}
write(sockfd,'^',sizeof(char));
Кроме того, как бы я прочитал это? Вот как я пытался это сделать.
int read_line(int fd,char message[])
{
size_t message_len=0;
while (message_len<BUF_SIZE)
{
char c;
int ret = read(fd, &c, 1);
if (ret < 0)
{
message[message_len] = 0;
return len; // EOF reached
}
if (c == '^')
{
read(fd,&c,1);
message[message_len] = 0;
return message_len; // EOF reached
}
data[len++] = c;
}
}
Как бы это реализовать? Спасибо.
Я уверен, что отправка одного персонажа за раз намного медленнее, чем отправка их навалом. –
Я абсолютно уверен, что вы правы, но у меня есть несколько отправляемых сообщений, которые слишком велики для отправки навалом. Я могу сломать каждое сообщение после того, как будет достигнуто определенное количество символов, но для целей этого назначения кажется, что это просто вызовет больше возможностей для ошибок. – zdevita