Linux C/C++ UDP Socket 网络通信

Python微信订餐小程序课程视频

https://edu.csdn.net/course/detail/36074

Python实战量化交易理财系统

https://edu.csdn.net/course/detail/35475
昨晚 Vv 让我给她讲讲网络编程,于是我就傻乎乎的带她入了门…

以下内容为讲课时制作的笔记~

1. socket() 函数

1.1 头文件
复制代码
  • 1

#include

1.2 函数参数

示例:int socket(int domain, int type, int protocol){...}

  • domain:设置协议域(协议族)

    • AF_INET:IPV4
    • AF_INET6:IPV6
    • ⋯⋯\cdots

协议族决定了 socket 的地址类型,在通信中必须采用对应类型的地址

  • type:指定 socket 类型

    • SOCKET_STREAM:流式 socket,针对于面向连接的 TCP 服务应用
    • SOCKET_DGRAM:数据报式 socket,针对于无连接的 UDP 服务应用
    • ⋯⋯\cdots
  • protocal:指定协议

    • 000:自动选择第二个参数类型对应的传输协议
    • IPPROTO_TCP:TCP传输协议
    • IPPROTO_UDP:UDP传输协议
    • ⋯⋯\cdots

type 和 protocal 不能随意组合,如 SOCKET_STREAM 不能和 IPPROTO_UDP 组合

1.3 返回值

示例:int sock_fd = socket(AF_INET, SOCKET_DGRAM, 0);

  1. sock_fd = -1:套接字创建失败
  2. sock_fd = x(x >= 0):套接字创建成功,返回套接字的文件描述符(索引)

套接字描述符是一个整数类型的值。每个进程的进程空间里都有一个套接字描述符表,该表中存放着套接字描述符和套接字数据结构的对应关系。该表中有一个字段存放新创建的套接字的描述符,另一个字段存放套接字数据结构的地址,因此根据套接字描述符就可以找到其对应的套接字数据结构。每个进程在自己的进程空间里都有一个套接字描述符表但是套接字数据结构都是在操作系统的内核缓冲里。

1.4 Socket是什么?

socket是对TCP/IP协议簇的封装,它的出现只是使得程序员更方便地使用TCP/IP协议栈而已。socket本身并不是协议,它是应用层与TCP/IP协议族通信的中间软件抽象层,是一组调用接口(TCP/IP网络的API函数)

socket在哪里

2. bind()函数

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值