java中tcp通信下载文件为什么第一行无法读取

java中tcp通信下载文件为什么第一行无法读取,第1张

这是因为tcp协议中有一个叫做“Nagle算法”的盯指碰机制,它会限制发送方发送数据的速度,以减少网络凯谈繁忙程度,逗蠢从而提高网络效率。这就意味着,如果发送方发送的数据量小于一定的阈值,接收方就会一直等待接收,直到超时或者接收到满足阈值的数据才会返回。因此,如果发送方发送的数据量小于阈值,那么接收方就会一直等待,直到超时或者接收到满足阈值的数据才会返回,这就是为什么第一行无法读取的原因。

服务端监听:ServerSocket server=new ServerSocket(port)//port:绑定的端口号

Socket client=server.accept()/逗返神/监听端口,一旦取得山亏连接则获得客户端的socket连接对象client

客户端: Socket s=new Socket(ip,port)//要连接的服务器的ip以及端口号

如果正常连接上之后,socket的对象可以获得InputStream和OutputStreame,然后就可以进行通信了

完成通信之后,执世陵行socket对象的close()方法关闭连接,完成一次完整的socket连接

你祥基这种说法本身就有待商榷。Java是一种商用开发语言,封装了很多上层的类完成企业开发需要。目的就是在企业开发中可以快速精准的完成企业开发要求。例如运如,ServerSocket/Socket帮助你完成tcp协议,DatagramPacket帮助你完成UDP协议。你却需要自己实现协议。而Java语言本身对于这些底层 *** 作系统相关的调用都比较麻烦。所以,如果你真要了解通信本身的底层协议,建议你用C语言来完成,而不是Java。

建议你的老师也好好了解一下各种语言的使用范围。在国外Java是不建议在大学的计算机课程中讲的,因为这会让你很难了解 *** 作系统及其整个计算机系统,只能快速完成某些具体开发任务。建议对于计算机科学和计算机体系机构方面谨橡谨的科研教学,使用比较底层的语言,例如C语言。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12275762.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存