尝试了Socket的一般实现,同步处理,没什么问题了。

另外发现调用Socket的时候,经常Socket就调用getOutputStream()取出OutputStream输出流,然后写么,一般都习惯性的写点内容,然后flush()。突然发现。。好像一直不知道这个flush的作用,就百度了下,发现有人说这个没用,我就自己试了试,看了下jdk的源码。在调用Socket的时候,这里取出的OutputStream应该是SocketOutputStream,这个东西没有覆盖父类的flush方法,那么往上看是FileOutputStream,再往上是abstract的OutputStream,这里边的flush是空方法,SO,确实是没有什么实际作用的。

然后CSDN论坛上之前有个哥们说好多OutPutStream的子类中的flush也没用,于是也就顺便看了下,DataOutPutStream中的flush是子类重写过的,调用的是他内部成员OutputStream的flush(),而这个成员out,又和DataOutPutStream构造的时候有关,SO,如果构造的时候用的那个OutPutStream中flush就是没用的,那这个buffered也就没啥用了,比如说用FileOutputStream去构造。具体用flush有意义的,一般都是那种涉及到利用缓冲区的,我CTRL+T了下,比如BufferedOutPutStream, PipedOutputStream,ObjectOutputStream的flush就是有用的。

然后在写测试类的时候无意中查到个东西,就也具体的看了看。。就是Iterator这个玩意,以前不太喜欢用,后来尝试多模匹配AC算法实现的的时候,搞了段代码,里头重写了一个集合的iterator()方法。我以前遍历集合,喜欢用for(T t : 集合),顶多了,有时候的情况是,遍历某个集合,去掉不满足条件的。。。我之前就尝试遍历过程中,list.remove然后报异常了。。。遍历过程中修改集合。。。所以我过去的方法特土鳖。。都是把不满足的东西放到另一个list里头,然后遍历完了,removeAll。。。这次正好又学到了这个,用iterator,for(; it.hasNext(); it.next())   注意这个it.next()如果在循环体中调了的话,就别写for里头了。这样如果这个遍历的对象不满足条件的话,用it.remove()是不会有影响的,很nice。it.next()给我的感觉,就像是,有10条记录的集合,遍历第一圈, it没指向谁,然后以一执行it.next,it指向第一个,并返回第一个,这个时候,remove是remove掉第一个元素,假如你上来就it.remove的话,it没指向谁,就该报错了。

此外,我也试了下,for(T t:集合)循环过程中,用it.remove。也是会报错的。然后用iterator遍历过程中,用list.remove也会异常,所以涉及到遍历集合过程中修改集合的话,还是用iterator遍历+修改,比较稳.

今儿打算一看下Socket异步处理的那堆代码,我才发现那个包是java.nio。。。我日,没用过,另外昨儿回家的路上看jsp的电子书。。。上来讲javabean用了一些propertychange一类的处理,监听。我觉得这个可能前台用的比较多吧,以前我是用winform做界面的,里边对监听啊,事件啊,用的比较多,而且那会oracle也表示不用swing什么的了么。。就没学,不过看来还是有用的,今天有空也写写看。

日常——异步Socket实现中的问题相关推荐

  1. 高并发 python socket send 异步_在Python中使用异步Socket编程性能测试

    ok,首先写一个python socket的server段,对开放三个端口:10000,10001,10002.krondo的例子中是每个server绑定一个端口,测试的时候需要分别开3个shell, ...

  2. c#异步socket

    .NET Socket开发之异步Socket 在基于.NET的网络服务端的开发中,我们用到和听到的最多的恐怕就是异步Socket了.异步Socket的性能比同步高出很多,但是编写代码比较复杂.因此异步 ...

  3. [python3.3]Python异步Socket编程【TCP】

    参考: http://www.cnblogs.com/snailrun/p/3805188.html 异步网络据说能极大的提高网络server的连接速度,所以打算写一个专题,来学习和了解异步网络.因为 ...

  4. C#.net同步异步SOCKET通讯和多线程总结(转)

    C#.net同步异步SOCKET通讯和多线程总结 来源:http://www.cnblogs.com/Silverlight_Team/archive/2009/03/13/1411136.html ...

  5. python模块介绍-asyncore 异步socket处理器

    2019独角兽企业重金招聘Python工程师标准>>> 该模块提供了异步socket服务客户端和服务器的基础架构. 只有两种方法让程序在单个处理器上的同时做超过一件的事情. 多线程编 ...

  6. 可扩展多线程异步Socket服务器框架EMTASS 2.0

    本文原创版权归 CSDN hulihui 所有,转载请按照如下方式显示标明原创作者及出处,以示尊重!! 作者: hulihui 原文:http://blog.csdn.net/hulihui/arch ...

  7. 同步Socket 与 异步 Socket

    同步Socket 与 异步 Socket: 1.同步就是阻塞的,比如 接受数据 如果没有回应 就一直等待. 2.异步就是不用等待: 同步Socket using System; using Syste ...

  8. IP地址的三种表示格式及在Socket编程中的应用

    转自:http://blog.csdn.net/hguisu/article/details/7449955 使用TCP/IP协议进行网络应用开发的朋友首先要面对的就是对IP地址信息的处理.IP地址其 ...

  9. 网络推广专员浅析如何在日常网络推广过程中增加网站转化率?

    当下越来越多企业选择建立属于自己的企业官网,通过网络推广实现在互联网市场中开拓新的用户群体,根据庞大的用户市场需求走向有针对性的运营优化,实现企业网站转化率的提升,促进企业网站营销获益.然而在庞大的互 ...

最新文章

  1. OpenCV最经典的3种颜色空间(cv2.cvtColor)及互相转换
  2. SAP RETAIL 为门店维护多个存储地点
  3. @Autowire 和 @Resource 注解使用的正确姿势,别再用错的了!!
  4. HttpPost+json请求---服务器中文乱码及其他
  5. 几种字符串到byte[] 数组转化为String 的方法
  6. 小心!上万个 Android 和 iOS 应用正在泄露你的数据
  7. Oracle,Mysql,Sqlserver数据库连接串(总爱忘,留着备用)
  8. Python基础---循环、条件判断
  9. vivo解bl锁_黔隆科技刷机教程酷派Y82820忘记密码刷机解锁降级救砖解屏幕锁账户锁教程...
  10. Android Window/Window Z-Order/Surface/SurfaceView
  11. Matlab与1stOpt多元非线性回归
  12. 树莓派打造智能语音控制系统
  13. outsystems刚做项目时的注意点-划重点
  14. PMP/CAPM/PgMP/ACP考试报名资格
  15. unity3d 获取 Advertising ID
  16. 1007 Maximum Subsequence Sum (25 分) java 题解
  17. angularjs常见错误_AngularJS开发人员应避免的7大错误
  18. sdut-循环-7-统计正数和负数的个数(II)python
  19. 项目管理进阶--软件开发项目中的团队组成
  20. CodeForces 891 E.Lust(生成函数)

热门文章

  1. CSS 中文本的属性,非常全面的总结!
  2. yyyy-MM-dd HH:mm:ss.SSS中大小写的解释
  3. 负数的二进制与十进制转化
  4. 水平集图像分割并行加速算法设计与实现(串行、OpenMP、CUDA)——串行实现篇
  5. 打破思维定势的重要性
  6. Android面试题(二)Android高级/资深面试题
  7. 计算机试讲教案模板范文,20分钟试讲教案模板
  8. 一个30岁男人的爱情婚姻思考(尽量不要在学习的时间看)
  9. 前端入门——动画原理及实现
  10. 看论文文献要如何做笔记?