【发布时间】:2016-03-10 03:34:50
【问题描述】:
我无法通过 sock_stream 连接发送一个字符串,一次一个字符。这样做的原因是我试图一次发送多个近 70000 个字符的字符串。我尝试使用的写入函数似乎需要一个字符串。
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;
}
}
我将如何实现这一点?谢谢。
【问题讨论】:
-
我很确定一次发送一个字符比批量发送要慢很多。
-
我绝对确定您是正确的,但是我发送了多条消息,这些消息太大而无法批量发送。我可以在达到一定数量的字符后分解每条消息,但就本次作业而言,这似乎只会导致更多的错误可能性。
标签: c sockets serversocket