通过socket发送数据时,这些数据是被马上发出的吗?还是要放在缓存一会?

来源:百度知道 编辑:UC知道 时间:2024/06/24 15:32:03
比如,做一个循环,不断的发送数据到服务器端,这些数据都马上被发出了还是要在缓存中累积到一定的数量时一起发出?
socket 通讯编程究竟指什么?其本质是什么?和具体的协议(tcp,udp,icmp,ip)有什么关系呢?为什么叫socket(插头)呢?socket_id 代表一个什么东东?应用程序中的SOCKET与内核是怎么交换数据的呢?现在的网卡都是全双工的,用两个进程对一个socket_id实现同时发和收可以吗,就是一个发另一个收?请说述一下,最好能举个例子
谢谢你了。

看你用到的是什么样子的流了,如果你用的是BufferedReader,它是带缓冲区的,会将你的数据在缓存中累积到一定的数量一起发出,就像你说的那样,想要马上发出数据,可以后面加一句*.flush().意思就是说刷新缓冲区,让数据马上发出。
如果你用的是不带缓冲区的流,如DataInputStream和DataOutputStream,就不需要担心这个问题,数据会马上发出