关于TCPClient, 怎么能Stream.Read一次读大于15000 bytes 的数据

问题描述

我在做一个socket的客户端,但在接收数据包大于15000时必须分2次读,怎么能听一次读完呢?我试设置SendBufferSize,但没有用。那位高手指点一下。

解决方案

解决方案二:
你send的时候能一下全部send出去吗?
解决方案三:
可以,就是读的时候不能一次读完
解决方案四:
我曾经接收过挺大一个串包的.因为我的包有固定的格式,所以我就先strings="";然后收到串就s+=se.readToEnd();判断是否到了最后,如果到了就解析去,如没结束就等待下一个Arrived事件.我曾经试过,一个很大的包TCP过来时,由于网络等原因,不一定能全部在一个事件中全部捕获,有可能分成2-3个,而且同样的包也不一定分的相同.所以不能一次读完可能是由于Arrived事件捕获的间隔造成的吧.
解决方案五:
我做了一个测试,在服务器端sleep10秒钟,客户端就可以一次收完,但这个办法有点莫名其妙,有更好的方法吗?下面是代码System.Threading.Thread.Sleep(10000);ns.Write(byteTime,0,byteTime.Length);
解决方案六:
有没有搞错这么大的包。了解一下IP/TCP的基础吧。这么在的包。会丢包的。
解决方案七:
引用5楼zanfeng的回复:

有没有搞错这么大的包。了解一下IP/TCP的基础吧。这么在的包。会丢包的。

时间: 2025-01-18 04:50:14

关于TCPClient, 怎么能Stream.Read一次读大于15000 bytes 的数据的相关文章

线程-TCPListener与TCPClient连接的问题

问题描述 TCPListener与TCPClient连接的问题 我要写一个TCP连接的小程序,想实现多个客户端连接服务端的功能.一个客户端与服务端建立连接后发送数据,服务端从流中读取数据,不断连接,然后等待客户端继续发送数据.但是在服务端读数据的程序开的线程中出现了,循环执行完以后不执行后面的代码的问题,谁知道是什么情况. //client线程中调用的方法 读取流中数据 private void HandleClientComm(Object o) { string data = null; b

Nodejs基础:stream模块入门介绍与使用

本文摘录自<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址.欢迎加群交流,群号 197339705. 模块概览 nodejs的核心模块,基本上都是stream的的实例,比如process.stdout.http.clientRequest. 对于大部分的nodejs开发者来说,平常并不会直接用到stream模块,只需要了解stream的运行机制即可(非常重要). 而对于想要实现自定义stream实例的开发者来说,就得好好研究stream的扩展API了,比如gulp的内部实

Apache Samza - Reliable Stream Processing atop Apache Kafka and Hadoop YARN

前两年一直在使用Kafka, 虽说Kafka一直说可用于online分析, 但是实际在使用的时候会发现问题很多, 比如deploy, 调度, failover等, 我们也做了一些相应的工作  Samza算是把这个补全了, 可以更加简单的在Kafka上进行online分析, 所以看着比较亲切   1 Background 首先对messaging系统和stream processing系统的阐述, 很清晰  messaging系统, 数据的传递, 是比较low-level infrastructu

表格存储(TableStore)新功能Stream初探

阿里云自研PB级nosql数据库TableStore近期发布了新功能Stream,也就是增量通道,可以让用户实时的获取数据库中的增删改操作.很多使用TableStore的用户会定期把数据导入各类计算平台做数据的离线分析,以前的做法是使用DATAX或者使用TableStore的SDK定期拉取数据.之前我们只能采用全量拉取的办法,定期的全量拉取势必会带来很多不必要的开销,并且也失去了新增数据实时处理的可能.那有了Stream增量通道后,之前的这些痛点都会被迎刃而解. 这个功能究竟怎么使用,又可以用在

Node.js Stream - 进阶篇

上篇(基础篇)主要介绍了Stream的基本概念和用法,本篇将深入剖析背后工作原理,重点是如何实现流式数据处理和 back pressure 机制. 目录 本篇介绍 stream 是如何实现流式数据处理的. 数据生产和消耗的媒介 为什么使用流取数据 下面是一个读取文件内容的例子: const fs = require('fs') fs.readFile(file, function (err, body) { console.log(body) console.log(body.toString(

nodejs Stream使用手册

介绍 本文介绍了使用 node.js streams 开发程序的基本方法. "We should have some ways of connecting programs like garden hose--screw in another segment when it becomes necessary to massage data in another way. This is the way of IO also." Doug McIlroy. October 11, 19

一起爪哇Java 8(三)——好用的Stream

Stream组成 在传统Java编程,或者说是类C语言编程中,我们如何操作一个数组数据呢?或者更泛化的讲,我们如何操作一个"集合"(Collection)数据呢?在Java中我们利用java.util包里的各种数据结构封装,来很好的表示了数组(Array).集合(Set).列表(List)和kv对象(Map).但是抽象表示只是意味着存储和定义操作方法,具体如何访问中间的数据,其实还是比较原始的,或者换句话说,操作一个Collection的数据,我们使用的是Collection本身提供的

Spark Streaming vs. Kafka Stream 哪个更适合你

译者注:本文介绍了两大常用的流式处理框架,Spark Streaming和Kafka Stream,并对他们各自的特点做了详细说明,以帮助读者在不同的场景下对框架进行选择.以下是译文.流式处理的需求每天都在增加,仅仅对大量的数据进行处理是不够的.数据必须快速地得到处理,以便企业能够实时地对不断变化的业务环境做出反应.流式处理是持续而又并发地对数据进行实时处理.流式处理是处理数据流或传感器数据的理想平台,而"复杂事件处理"(CEP)则利用了逐个事件处理和聚合等技术.对于实时数据处理功能,

浅析Node.js 中 Stream API 的使用_node.js

本文由浅入深给大家介绍node.js stream api,具体详情请看下文吧. 基本介绍 在 Node.js 中,读取文件的方式有两种,一种是用 fs.readFile ,另外一种是利用 fs.createReadStream 来读取. fs.readFile 对于每个 Node.js 使用者来说最熟悉不过了,简单易懂,很好上手.但它的缺点是会先将数据全部读入内存,一旦遇到大文件的时候,这种方式读取的效率就非常低下了. 而 fs.createReadStream 则是通过 Stream 来读取