首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TCP和UDP套接字的区别

TCP和UDP套接字的区别
EN

Stack Overflow用户
提问于 2016-04-22 09:54:39
回答 1查看 2.7K关注 0票数 0

与TCP套接字(sock_stream)和UDP套接字(数据报)建立连接有什么区别。到目前为止,我认为我们可以只为TCP套接字使用连接函数来创建连接。但是,可以与UDP套接字建立连接。到目前为止,我还不知道如何与UDP套接字建立连接。这两者有什么区别呢?

代码语言:javascript
复制
        int tcpsock = socket(AF_INET, SOCK_STREAM, 0);
        connect(tcpsock,(struct sockaddr*)&sa,sizeof(sa));

        int udpsock = socket(AF_INET, SOCK_DGRAM, 0);
        connect(udpsock,(struct sockaddr*)&sa,sizeof(sa));  // How ?

UDP是无连接的。那么,如果我们使用UDP,如何能够建立类似于TCP的连接呢?

我已经知道TCP和UDP之间的区别了。我的疑问是,UDP是无连接的,那么连接函数如何返回成功呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-22 10:55:09

UDP (a)中的connect()函数告诉UDP在哪里发送所有数据报,因此可以使用send()而不是sendto(),(b)充当传入数据报的筛选器,因此可以使用recv()而不是recvfrom()。它不会在网络上做任何事情:它只是一个本地操作。它总是返回零,因为它不能失败。然而,发送到一个不存在的目标可能失败.

都被记录在案了。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36790595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档