我一直认为TcpClient会简化网络应用程序中的套接字操作 .

但是,似乎TcpClient需要知道应该从底层套接字读取多少数据 . 它看起来像TcpClient.GetStream(..) . Read(..)调用Socket.Receive(..)读取指定的字节数 .

TcpClient暴露了一个NetworkStream,它可能非常烦人 . 像终止字符串和不可靠的DataAvailable属性这样的东西会使未知TCP“数据包”的读取变得复杂 .

使用Socket.ReceiveFrom(..)似乎更加“面向分组” .

我通常使用TcpClient来绑定和握手等,并且用于阅读我使用

Socket socket = _tcpClient.Client;

byte[] buffer = new byte[1000];

IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);

EndPoint senderRemote = sender;

int length = socket.ReceiveFrom(buffer, ref senderRemote);

string replyString = Encoding.ASCII.GetString(buffer, 0, length);

return replyString;

缓冲区初始化的一些开销,但它从Networkstream一次读取一个字节,并查找终止字符或字符串 .

TcpClient不能以更好的方式处理读取数据,即Socket的做法,这有点奇怪吗?

java 从socket读数据,从数据读取TcpClient不如socket相关推荐

  1. java线程池读文件_多线程读取Java文件

    我正在创建线程以读取Java中的文件.当我创建2个线程时,每个线程都读取整个文件,而我希望它们读取文件的不同部分.我尝试放入sleep(),join(),yield(),但是在包含它们之后,这只会减慢 ...

  2. java套接字客户端_使用Java从客户端套接字读取数据(Read data from a client socket in Java)...

    使用Java从客户端套接字读取数据(Read data from a client socket in Java) 我编写了从客户端套接字发送/接收数据的代码. 发送数据步骤已成功完成,但是当我想从套 ...

  3. python读二进制格点雷达基数据_radar: 基于python pycinrad 以及多种类库 编写基于java 的雷达基数据统一格式读取...

    radar-core 介绍 基于python pycinrad 以及多种类库 编写基于java 的雷达基数据统一格式读取 包括读取分层ppi.插值到等经纬度的网格化ppi以及 cappi.vcs等基本 ...

  4. getprivateprofilestring读不到数据_Tomcat NIO(11)请求数据读取

    在上一篇文章里我们主要介绍了 tomcat io 线程中涉及到的主要核心类,包括 AbstractProcessorLight,Http11Processor,CoyoteAdapter,这里主要介绍 ...

  5. java 打开url连接访问不了,android 应用Java自带的HttpURLConnection 连接网络 读取返回数据...

    android 使用Java自带的HttpURLConnection 连接网络 读取返回数据 @Override protected void onCreate(Bundle savedInstanc ...

  6. java 根据分隔符从后往前读取文件数据

    java 根据分隔符从后往前读取文件数据 思路 从前往后比较简单,使用Scanner的sc.useDelimiter(delimiter); 就可以. 从后往前 百度了半天似乎java没有从后往前读的 ...

  7. java批量导出txt,java easyreport 导入excel、 txt 数据批量读取(五)

    有时候我们需要读的报表数据很大,这时候一次加载所有数据有可能会出现内存溢出,所以我们需要采用批量读取来实现. 导入数据test5.xls姓名年龄科目分数 王老五12语文80 柯景腾13语文78 沈佳宜 ...

  8. java雷达数据解析_radar: 基于python pycinrad 以及多种类库 编写基于java 的雷达基数据统一格式读取...

    radar-core 介绍 基于python pycinrad 以及多种类库 编写基于java 的雷达基数据统一格式读取 包括读取分层ppi.插值到等经纬度的网格化ppi以及 cappi.vcs等基本 ...

  9. python读二进制格点雷达基数据_对numpy中二进制格式的数据存储与读取方法详解...

    使用save可以实现对numpy数据的磁盘存储,存储的方式是二进制.查看使用说明,说明专门提到了是未经压缩的二进制形式.存储后的数据可以进行加载或者读取,通过使用load方法. In [81]:np. ...

  10. Java 实现日志文件监听并读取相关数据

    Java 实现日志文件监听并读取相关数据 项目需求 由于所在数据中台项目组需要实现监听文件夹或者日志文件并读取对应格式的脏数据的需求,以便在文件.文件夹发生变化时进行相应的业务流程:所以在这里记录下相 ...

最新文章

  1. MyBatis - 6.Spring整合MyBatis
  2. “偷懒”上热搜!南京大三学生自制宿舍关灯神器火了,网友:希望量产
  3. PE文件重定位概念学习
  4. linux获取其他主机ipv6,linux – 如何获取IPv6主机的范围?
  5. 类似系统的UIActivityViewController显示方式的开源代码:HYActivityView
  6. Heap 3214 LIS题解
  7. md5与des算法有何不同_到底AI芯片和传统芯片有何区别?
  8. C# 根据中文得到全拼
  9. 为什么微服务化、数据仓库都不是中台?
  10. django 1.8 官方文档翻译: 3-1-3 Django 的快捷函数
  11. Android 多媒体开发学习之简单的音乐播放器
  12. 李阳疯狂英语900句 121-330
  13. cvThreshold() 阈值化
  14. 单片机开发环境要求java地址_AVR单片机教程——开发环境配置
  15. 深度学习领域,你心目中 idea 最惊艳的论文是哪篇?
  16. kex_exchange_identification: Connection closed by remote host
  17. 电视台的收视率是怎么计算的
  18. 马原(2023版)导论笔记
  19. Gherkin简单使用
  20. oracle merge into 用法详解

热门文章

  1. ssh介绍和使用--SecureCRT工具和ssh命令使用,以及sshd配置
  2. Android 接入阿里云推送com.aliyun.ams:alicloud-android-push:3.7.4步骤(二)
  3. shufflenetv1详解
  4. Qt学习(一)ui界面的设计
  5. 74LS 系列 名称解释
  6. Python Day05
  7. 潇洒老师教你注塑模具使用顶针油需要注意的问题
  8. 高分影像批处理第三回——RPC文件与几何校正
  9. python下载itchat失败_Python itchat库的使用,pythonitchat,方法,小记
  10. Resnet残差网络学习