java socket InputStream和OutputStream
从java socket对象获取的InputSteam的read方法其实是对linux的recv()函数的调用,OutputStream也同理。
也就是说,InputStream和OutputStream只是对底层接口的一个包装。
recv()和send()来自于<sys/socket.h>,这是glibc的头文件。函数原型如下:
ssize_t recv(int sockfd, void *buff, size_t nbytes, int flags);
ssize_t send(int sockfd, const void *buff, size_t nbytes, int flags);
可见,给定要传输的数据的起始地址以及要传输的数据的长度,就可以进行传输了。
而OutputStream的write方法,
java.io.OutputStream.write(byte[] b, int off, int len)
同样,给定要传输的数据的起始地址以及要传输的数据的长度。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步