socket telet 能否实现换行自动转换为回车换行
我做了个简易的telnet server在我的程序里,简单的描述原理如下:
创建一个TCP server并等待连接,如果接收到一个新的连接 sock(sock为accept返回的句柄)
将标准输入输出与这个sock绑定:
dup2(sock, 0);
dup2(sock, 1);
dup2(sock, 2);
然后从sock接收用户命令并解析(解析结果是printf输出的),希望所有printf出来的内容都能发送到客户端。
结果:程序可以工作,可以接收到客户端的命令,printf的输出也都发送到了客户端。
问题:
发送到客户端的内容不能够实现换行变成回车换行。
如 printf("aaa\nbbb\n");客户端希望两行从头对齐显示,但实际上第二行显示的位置不是行首。
原因是没有将"\n"自动转换成"\r\n"发送到客户端。
尝试办法:
按以下方法设置终端属性不起作用:
struct termios ios;
tcgetattr(0, &ios);
ios.c_oflag |= ONLCR;
tcsetattr(0, TCSANOW, &ios);
tcgetattr(1, &ios);
ios.c_oflag |= ONLCR;
tcsetattr(1, TCSANOW, &ios);
以上操作后,还是不能实现"\n"自动转换成"\r\n"
按以下方法设置socket终端属性,调用失败:
struct termios ios;
tcgetattr(sock, &ios);
ios.c_oflag |= ONLCR;
tcsetattr(sock, TCSANOW, &ios);
好象不能对socket连接去设置属性因而调用返回失败
困惑:我无法将原程序中所有printf的"\n"都手工转换成"\r\n" (部分代码是.o文件没有源码)
寻求帮助:如何能实现“\n”自动转换成"\r\n"发送到客户端,或者如何进行telnet协商使客户端收到"\n"时自动转换成"\r\n"去显示?
万分感谢 !
相关推荐
通信行业基于MongoDB的安全合规与性能优化:5G时序数据处理、可查询加密及窗口函数应用
内容概要:本文围绕MongoDB在通信行业的深度应用,系统讲解了可查询加密、时间序列集合、窗口函数与性能诊断四大核心技术。通过详实的代码案例,展示了如何利用可查询加密实现敏感数据合规存储与查询,使用时序集合高效处理5G网络KPI等高频写入场景,借助窗口函数进行经营指标的趋势分析,并结合explain()与查询分析器完成性能调优。文章还涵盖分片一致性检查、索引优化等运维实践,全面覆盖通信系统对安全、性能与扩展性的严苛要求。; 适合人群:具备一定数据库基础,从事通信行业研发、架构或运维工作1-3年的技术人员,尤其是参与5G网络监控、客户数据管理或大数据平台建设的相关人员。; 使用场景及目标:① 实现用户手机号、身份证等敏感信息的加密存储与等值查询,满足安全合规要求;② 构建高吞吐、低延迟的5G基站KPI时序数据存储与分析系统;③ 在数据库层直接完成滑动平均、累计求和等经营分析,减少应用层计算负担;④ 诊断慢查询、验证索引有效性,保障系统高性能运行。; 阅读建议:此资源强调理论与实战结合,建议读者在本地或测试环境部署MongoDB 7.0+版本,动手复现文中代码,重点关注schemaMap配置、时序集合参数选择与窗口函数语法细节,并结合explain执行计划理解底层优化机制,从而真正掌握通信级数据架构的设计精髓。
国央企创新负责人如何借助平台实现技术成果的高价值转化与资源精准配置?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
产业园区运营负责人如何在平台建设中科学配置创新资源,提升园区内技术对接效率?.docx
产业园区运营负责人如何在平台建设中科学配置创新资源,提升园区内技术对接效率?
产业园区运营负责人如何提升园区内技术供需匹配的精准度?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
高校技术转移办公室人员如何提升科技成果推介的效率与质量?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。


