您的位置首页百科知识

recv()和recvfrom()有什么区别?

recv()和recvfrom()有什么区别?

的有关信息介绍如下:

recv()和recvfrom()有什么区别?

recv()和recvfrom()区别是:含义不同、用法不同、侧重点不同

一、含义不同

recv

abbr. 接收;收到(receive)。

recv from

收到来自…。

二、用法不同

recv

receive的基本意思是“接受”“收到”,仅指接到或收到某物的客观事实,而不表示主观态度(接受或拒绝)。引申表示“受到教育、惩罚、支持等”“赞同某一意见或看法”。有时还可表示“接见某人”。

Ipfw add allow tcp from to in recv.

添加和除去规则例子:。

L2TP : Zero check error when recv call control message.

第三个表明收到的控制报文中存在应该为0的位不为0的情况。

The placeholder prefix is SEND for Send connectors or RECV for Receive connectors.

占位符prefix为SEND(对于发送连接器)或RECV(对于接收连接器)。

recv from

receive from/of的意思是“从某处或某人那收到(款项)”,如received from/of Sam seven pounds。

I received a cable from New York.

我收到一封从纽约来的电报。

We receive a fax of the order this morning.

我们今天上午收到一份传真订单。

Do you save letters and cards that you receive from friends and relatives?

您有收藏您所收到的朋友的和亲人的信件、卡片吗?

三、侧重点不同

recv

仅指接到或收到某物的客观事实,而不表示主观态度(接受或拒绝)。

recv from

从某处或某人那收到(款项)。

recv的recvfrom是可以替换使用的,只是recvfrom多了两个参数,可以用来接收对端的地址信息,这个对于udp这种无连接的,可以很方便地进行回复。而换过来如果你在udp当中也使用recv,那么就不知道该回复给谁了,如果你不需要回复的话,也是可以使用的。另外就是对于tcp是已经知道对端的,就没必要每次接收还多收一个地址,没有意义,要取地址信息,在accept当中取得就可以加以记录了。

对于recvfrom 可同时应用于面向连接的和无连接的套接字。

recv一般只用在面向连接的套接字,几乎等同于recvfrom,只要将recvfrom的第五个参数设置NULL。

说白了就是 recvfrom比recv多了一个导航功能,你看名字就很好理解啦,有个from吗

楼上回答的很专业

看标准库的说明。