Java教程

2022-1-9:send函数

本文主要是介绍2022-1-9:send函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

函数原型:

int  send( SOCKET s, const char *buf, int  len, int flags);

函数的作用:

在socket编程当中,我们在建立好连接之后,接下来就是数据的交互,即发送数据和接收数据,接收就用recv函数,发送就要借助send这个函数。send函数和recv函数一样,发数据也不是由他来完成,他只是把数据拷到底层的协议空间里。发送和接收其实都是底层协议在干。

参数解释:

参数一:你要让哪个socket来发。填他的文件描述符。

参数二,参数三:要发送的内容你存在哪里的,把他的地址传进来,把他的长度传进来。

参数四:不解释,直接填0。

返回值:如果成功发送,他返回成功发送的字节数,失败返回SOCKET_ERROR

伪代码演示:

SOCKET fd1=socket(...);
bind(...);
listen(...);
SOCKET fd2=accept(...);

char buf[1024]={.....};
send(fd2,buf,sizeof(buf),0);

说明:

1,这个buf的大小是并没有死规定,需要就实际情况来判断。实际情况的意思就是,如果传输的数据就是100字节,为了节约考虑,空间就设100即可。好比如果只有100吨货,没必要来个拉1000吨的车,浪费!

2,数据传递一次的基本单位是1500字节,但是这1500字节的空间中有一部分固定开支,即ip包头,tcp或者udp包头,还有结束标志,这三个东西要固定开支不到100字节,所以这个buf上限设置个1400也没问题。也可以超过1500,但是底层会进行分片处理。就是根据数据量打成n个包。

这篇关于2022-1-9:send函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!