2 christ202 christ202 于 2015.07.23 09:22 提问

android 客户端socket接收数据时只能接收到1448个字节
                byte[] buffer = new byte[1024 * 101];
                while ((length = is.read(buffer)) != -1) {
                        byte[] dataInstream = new byte[length];
                                    System.arraycopy(buffer, 0, dataInstream, 0, length);
                }

2个回答

u013301192
u013301192   2015.07.23 09:55

检查一下发送端有没有刷新缓冲区,如果没刷新的话,接收端有可能收到的不是完整的数据

xuehuapiaoyi88
xuehuapiaoyi88   2015.07.23 10:14

socket通信貌似容易丢失数据,。。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android笔记:Socket客户端收发数据
转载:  http://www.cnblogs.com/shaocm/p/3528346.html client.xml     android:layout_width="match_parent"     android:layout_height="match_parent"     android:orientation="vertical" >
如何获取socket中ReceiveFrom接收的数据的字节长度?
clientSocket = new Socket("localhost", PORT);         clientSocket.setReuseAddress(true); byte[] buffer = new byte[clientSocket.getInputStream().available()]; clientSocket.getInputStream().read(
socket客户端接收信息被堵塞
是不能等于-1撒.. 他在等你那边给他写东西呢.. 你应该在服务器端结束的时候给他写个东西过去..让他知道已经结束了.. 还有什么问题HI我哈  但是read方法本身不就有告知客户端文件传送结束的功能么 当读到文件结束符的时候它会返回-1的啊 确实读文件结束就是-1... 但是你的客户端读的不是文件啊..服务器才是读文件..所以服
关于串口通讯每次只能接收8个字节
这两天在某嵌入式系统做了个串口通讯程序,遇到了每次只接收8个字节的问题。相信很多人都遇到了。 上网一查资料,找到串口配置结构体struct termios中的c_cc[VTIME] 和 c_cc[VMIN]参数。 c_cc[VTIME]   // 等待时间,单位百毫秒  c_cc[VMIN]     // 最小字节数  VMIN自然就是最少接收的字节数了。那不足VMIN的话怎么办呢
Android Socket 发送与接收数据问题: 发送后的数据接收到总是粘包
先说明一下粘包的概念: 发送时是两个单独的包、两次发送,但接收时两个包连在一起被一次接收到。在以前 WinCE 下 Socket 编程,确实也要处理粘包的问题,没想到在 Android 下也遇到了。首先想从发送端能否避免这样的问题,例如: (1) 调用强制刷数据完成发送的函数;(2) 设置发送超时。1 先试了调用 flush() 函数,但运行后现象依旧2 设置发送超时是 Windows 平台的做法
Socket.Receive 无法预知字节长度的数据接收
话不多说直接上代码: string recvStr = ""; byte[] recvBytes = new byte[1024]; int bytes; do { bytes = clientSocket.Receive(recvBytes, recvBytes.Length, 0); //从客户端接受消息 recvStr += Encoding.ASCII.GetString(recvB
【android学习】android端通过socket接收到数据产生乱码
【问题重现】 接收到的数据为汉字和字母混合数据,有个别的“�”乱码。 【问题原因】 1)编码格式转换有问题。 经过检查,服务器发送数据使用的是UTF-8格式,android端接收数据也使用的是UTF-8格式来转码。 2)数据过大时,分包接收数据,然后转码。2个分包分别将一个汉字的2个字节分开存储。然后每次一个分包进行转码,汉字的一个字节无法识别,转码后表现为乱码。 所以乱码多数出现
C# 实现的多线程异步Socket数据包接收qi框架
几天前在博问中看到一个C# Socket问题,就想到笔者2004年做的一个省级交通流量接收服务器项目,当时的基本求如下: 接收自动观测设备通过无线网卡、Internet和Socket上报的交通量数据包全年365*24运行的自动观测设备5分钟上报一次观测数据,每笔记录约2K大小规划全省将有100个左右的自动观测设备(截止2008年10月还只有30个)       当时,VS2003才发布
使用CSocket、CSocketFile及CArchive组合接收不到数据的一种原因
这几天在做网络编程,发现一个问题 客户端使用CSocket、CSocketFile及CArchive组合, 关键代码如下: void CClientSock::init(CClientDlg* pdlgClient) { m_pdlgClient=pdlgClient; m_psockFile=new CSocketFile(this,TRUE); m_parInput=new CA
Socket Receive数据一次性接收不全的问题
在发送端,一次发送4092个字节, 在接收端,一次接收4092个字节, 但是在接收端,偶尔会出现 socket.receive 接收不全的情况 , ret = sockTemp.Receive(bBuffer,iBufferLen,0); //也有可能无法收到全部数据!  必须要考虑0   Socket的Send,Recv的长度问题: 一个包没有固定长度,以