c语言 readline实现
来源:互联网 发布:绝对争锋网络剧百度云 编辑:程序博客网 时间:2024/05/21 03:25
要实现类似java的readline功能,需要用到recv函数的MSG_PEEK标示,它表示recv在读缓冲区的时候不对缓冲区进行清空,
只是一次窥视,以此来找到第一个出现\n的位置,并调用recv进行读取清空
int readline(int sockfd, char *buf, int len)
{
int count;
while (1)
{
// 设置标志位,读取后不清除缓冲区
count = recv(sockfd, buf, len, MSG_PEEK);
// 小于0表示失败,等于0表示对方关闭连接了
if (count < 0 || count == 0)
return count;
// 找到第一次出现\n的位置,并截取到此位置的字符串
for (int i = 0; i < count; ++i)
if (buf[i] == '\n')
{
memset(buf, 0, len);
len = i + 1;
if (recv(sockfd, buf, len, 0) != len)
return -1;
return len;
}
}
return -1;
}
0 0
- c语言 readline实现
- c语言readline的实现
- 用C语言实现类似于JAVA readLine()的功能
- 用C实现文件readLine函数
- readline函数实现源码
- 实现readline,gethostname,gethostbyname
- C#ReadLine()和ReadKey()区别
- 8. readline函数的实现
- readline()
- readLine
- readLine
- readline
- 链栈 C语言实现
- 地球 c语言实现
- C语言实现堆栈
- c语言实现计算器
- TrimLeft C语言实现
- C语言实现有限状态机
- VMware虚拟机安装Linux centOS 6.5使用桥接
- Mangos源码分析(7):服务器公共组件实现之游戏主循环
- Vin2008 X64安装.Net Framework1.1
- Swift UINavigationController(导航控制器)的创建及导航栏的设置
- 斐波那器数列
- c语言 readline实现
- 虚拟机安装CentOS6.4用“桥接:直接连接到物理网线”不能上网的原因及解决方法
- C++_插入排序
- 解决linux中zookeeper,tomcat等依赖jdk的程序自启动失败问题
- Unity编程笔录--EasyCodeScanner导入Xcode报错
- Android带平移动画的栏目选择功能
- 如何在Mac中安装好Ruby环境
- sde解除锁定
- iOS 如何在ARC下 使用MRC的类库