TCP/IP网络编程笔记-ch2.套接字类型与协议设置

函数

创建套接字:

#include<sys/scoket.h>
@param domain:套接字中使用的协议族(Protocol Family)信息
@param type:套接字数据传输类型信息
@param protocol:计算机简介通信中使用的协议信息
int socket(int domain,int type,int protocol);
//成功返回文件描述符,失败返回-1

socket从Linux内核版本2.6.17起,type参数可以接收服务类型与下面两重要标志相与的值:  
    SOCK_NONBLOCK:创建socket设为非阻塞
    SOCK_CLOEXEC:fork调用创建子进程时在子进程中关闭该socket

在这里插入图片描述

domain协议族:

domain值协议族
PF_INETIPv4互联网协议族
PF_INET6IPv6互联网协议族
PF_LOCAL本地通信的UNIX协议族
PF_PACKET底层套接字的协议族
PF_IPXIPX NoveII协议族

type套接字类型:

type值套接字类型
SOCK_STREAM面向连接的套接字
SOCK_DGRAM面向消息的套接字

套接字特征:

面向连接的套接字:
传输过程中数据不会小说
按序传输数据
传输的数据不存在数据边界

面向消息的套接字:
强调快速传输而非传输顺序
传输的数据可能丢失也可能损坏
传输的数据有数据边界
限制每次传输的数据大小

数据边界:接收次数与传输次数是否相同 存在数据边界:次数应当相同

protocol指定协议信息

protocol值协议类型
IPPROTO_TCPTCP套接字
IPPROTO_UDPUDP套接字

创建套接字

int tcp_socket=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);
//TCP套接字



int udp_socket=socket(PF_INET,SOCK_DGRAM,IPPROTO_UDP);
//UDP套接字

实例

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E4KUePav-1641630527108)(https://note.youdao.com/yws/res/e/WEBRESOURCEd29fb36fd0f0be6dc4e0c9f2d4561e5e)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值