socket 读、写字节流数据
socket是网络通信套接字。主要体现在读与写方面。 ( 阻塞读)
C版本:
int ReadFile(int nFile, void * pData, int * pSize)
{int nLeft, nRead;char *pcData = pData;ASSERT(pData != NULL && pSize != NULL);nLeft = *pSize;while (nLeft > 0){if ((nRead = read(nFile, pcData, nLeft)) < 0){if (errno != EINTR)ASSERT(0);nRead = 0;}else if (nRead == 0)break;nLeft -= nRead;pcData += nRead;}*pSize = *pSize - nLeft;return 0;
}
int WriteFile(int nFile, void* pData, int nSize)
{int nLeft = nSize, nWrite;const char *pcData = pData;ASSERT(pData != NULL);while (nLeft > 0){if ((nWrite = write(nFile, pcData, nLeft)) <= 0){if (errno != EINTR)ASSERT(0);nWrite = 0;}nLeft -= nWrite;pcData += nWrite;}return 0;
}
JAVA版本:
public static String sendSocket(String ip, int port, String param) {Socket socket = null;String rspStr = null;try {String reqStr = String.format("%04d%s", param.length(), param);LOGGER.info("发送数据:" + reqStr);socket = new Socket(ip, port);OutputStream outPutStream = socket.getOutputStream();outPutStream.write(reqStr.getBytes());outPutStream.flush();socket.setSoTimeout(60*1000); //设置读超时时间 毫秒InputStream inputStream = socket.getInputStream();//4字节长度域byte[] lenbuf = new byte[4];inputStream.read(lenbuf);int count = Integer.valueOf(new String(lenbuf));byte[] buf = new byte[count];LOGGER.info("count====" + count);//内容域int readCount = 0;while (readCount < count) {readCount += inputStream.read(buf, readCount, count - readCount);}rspStr = new String(buf);LOGGER.info("收到响应" + rspStr);socket.close();return rspStr;} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();LOGGER.error("异常出错", e);} finally {if (socket != null) {try {socket.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();LOGGER.error("异常出错", e);}}}return rspStr;}
- java读取内容时, 内容很多时,低层并不会一次全都读出,需要进行多次读。
- 参考:应用 http://blog.csdn.net/zhuxiaoping54532/article/details/62886506
- 参考:应用 http://blog.csdn.net/xuehanlin/article/details/8011321
- 参考: socket 说明 http://blog.csdn.net/sureyonder/article/details/5633647
socket 读、写字节流数据相关推荐
- Python Socket请求网站获取数据
Python Socket请求网站获取数据 ---阻塞 I/O ->收快递,快递如果不到,就干不了其他的活 ---非阻塞I/0 ->收快递,不断的去问,有没有送到,有没有送到,. ...
- getprivateprofilestring读不到数据_Tomcat NIO(11)请求数据读取
在上一篇文章里我们主要介绍了 tomcat io 线程中涉及到的主要核心类,包括 AbstractProcessorLight,Http11Processor,CoyoteAdapter,这里主要介绍 ...
- php socket 多次发送,php模拟socket 多次发送数据的实现方法
php模拟socket 多次发送数据的实现 方法 表四:Socket函数 函数名描述 socket_accept() 接受一个Socket连接 socket_bind() 把socket绑定在一个IP ...
- 一文读懂大数据平台——写给大数据开发初学者的话!
一文读懂大数据平台--写给大数据开发初学者的话! 文|miao君 导读: 第一章:初识Hadoop 第二章:更高效的WordCount 第三章:把别处的数据搞到Hadoop上 第四章:把Hado ...
- 一纸读懂另类数据 | 未央研究
一纸读懂另类数据 | 未央研究 未央研究 清华大学五道口金融学院 今天 什么是另类数据? 1.定义 另类数据(Alternative Data)是不同于传统的交易所披露.公司公告披露的新数据,是有利于 ...
- Opencv使用imread函数时,读到的数据为空
问题描述:使用opencv的imread函数时,读到的数据为空. 程序: Mat img;string namepic="street.png";img = imread(name ...
- Android客户端 和 pc服务器 建立socket连接并发送数据
服务器使用java代码 1.服务端需要创建一个ServerSocket(port) 2.port(端口) 地址范围在0~65535请使用1024以上的端口,尽量偏大使用,否则可能和你主机上的其他应用程 ...
- 【图解】九张图带你读懂大数据医疗
文章讲的是[图解]九张图带你读懂大数据医疗,互联网大框架的结构下,互联网+医疗的个性化服务,能给医疗保健工作者和消费者带来哪些真正的福利呢,首先可以提高效益减少废物.增强了预防传染病的能力.对于个人公 ...
- 《一本书读懂大数据营销 玩透大数据营销 创造网络营销奇迹》pdf下载 百度云
<一本书读懂大数据营销 玩透大数据营销 创造网络营销奇迹>pdf下载请到文末! 在使用低对比度光源的摄影作品中,辣椒的阴影不再是清晰可见的,阴影的线条也不再"生硬" ...
- USBHID-BUS Hound能抓到数据但上位机读不到数据
调试USBHID设备的时候,遇到一个问题,BUSHound能正确抓到下位机上传的的数据,但是使用其他上位机却读不到数据,甚至会崩溃. 当然,自然而然地怀疑有可能是上位机的问题,可靠的排查方法当然是要排 ...
最新文章
- qt 控件 背景色 透明 除去边框
- Spring Data JPA(官方文档翻译)
- 鸿蒙和安卓实际体验,鸿蒙2.0,你收到推送了么?告诉你实际体验!
- 农产品流通信息化及农超对接体系的现状
- 如何精确评估开发时间的 4 个小套路?
- H5+JS实现《Just Do 8》游戏源码分享
- CentOS 7 下的 Firewall
- server2008密码不满足密码策略的要求,检查最小密码长度、密码复杂性和密码历史的要求”的解决办法...
- 【Windows】XShell中使用小键盘和ALT键(作Meta键),使BackSpace正常
- 通向码农的道路(enet开源翻译计划 二)
- VMWare学习总结(1)——Centos7安装完毕后无法联网的解决方法
- 简单的SQL语句 DDL
- win11如何下载游戏版 Windows11下载游戏版的步骤方法
- 中国历史上成功的两人合作, 改进, 提高的例子
- 重磅开源!一款引入实时语音与声纹识别的网络辩论系统!
- 部署Python的框架下的web app的详细教程
- MOS管和三级管基础知识总结
- golang学习之negroni/gizp源码分析
- c++可视化 横向打印二叉树(连线、规整)
- small rtos51学习资料收集
热门文章
- java程序的结构与类型实验报告_20172301 《Java软件结构与数据结构》实验三报告...
- 【CSAPP】二进制拆弹实验
- 基于人工智能的搜索引擎优化软件-市场现状及未来发展趋势
- 压缩文件并删除源文件
- 集合竞价与连续竞价02
- smartbi问题_SAP BO的五大尴尬,Smartbi就是HANA用户的“菜”
- SmartBI入门(二)配置SmartBI
- 数据库系统概论(第5版)王珊 详细知识清单 期末复习速成 考前冲刺 面试——(第一篇 基础篇)
- 系统安装-U盘安装Windows XP SP3纯净版简述
- Python12306自动抢票下单,五一旅游回家就选Python