关于socket的tcp/ip连接处理问题,请专家高手指教,谢谢 不可能发生错位的。除非对方发错了,比如先发个整数100表示下面有100个字节的数据,但他只发了99个,这样才会发生错位。至于在网络传输过程中的数据改变也不必担心,TCP协议是可靠的面向连接的流协议,协议内部已经包含了校验和纠错,它交给你的数据必定与对方发出的数据一致。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可以一次性把收到的数据都读入到buffer中,再分析你的这个buffer,即使这次出错了,下次的数据读入到buffer中也是新的。 不用担心这个,TCP/IP协议本身就是按一个个报文发送的,也就是说它已经帮你分好包了,只要你的报文不超出最大长度限制,你每在发送端发送一个报文,在接收端都会收到同样一个报文,并且能够得到该报文的长度,所以你在报文开头写的整数都可以省掉,当然在有时候还是有用的。 建议直接发送序列化后object,这样就不会错了还不知道了。 这样做有可能出问题。虽然tcp是可靠协议,但是他用校验非常简单,难免会出错,万一出错,以后发的东西就没用了,应为tcp是基于流的(upd没问题,它是基于包的)。最好自己做校验(32bit crc)帧头、帧长、校验、序号是必需的,其他无所胃了。 java excel 插入图片? java 算法 编程 这个为什么在主函数里能直接用? 请高手解决一个问题..急.!!!!!! 关于String数组问题! swing里面和引用相似的组件是哪个? 一个程序和一个问题 关于netbeans和eclipse的swing的问题! 关于jbuilder和tomacat整合的问题(online) 请教一个关于数组造型的问题! 静态方法 请各位帮忙 java代码交换!!!
即使这次出错了,下次的数据读入到buffer中也是新的。