基本SCTP套接字编程常用函数
sctp_bindx函数:允许SCTP套接字捆绑一个特定地址子集
#include <netinet/sctp.h> // 若成功返回0,出错返回-1
int sctp_bindx(int sockfd, const struct sockaddr *addrs, int addrcnt, int flags);
sctp_connectx函数:用于连接到一个多宿对端主机
#include <netinet/sctp.h> // 若成功返回0,出错返回-1
int sctp_connectx(int sockfd, const struct *addr, int addrcnt);
sctp_getpaddrs函数:使用SCTP时它仅仅返回主目的地址,使用sctp_getpaddrs用于获取对端所有地址
#include <netinet/sctp.h> // 若成功返回存放在addrs中的对端地址数,出错返回-1
int sctp_getpaddrs(int sockfd, sctp_assoc_t id, struct sockaddr **addrs);
sctp_freepaddrs函数:用于释放sctp_getpaddrs函数分配的资源
#include <netinet/sctp.h> void sctp_freepaddrs(struct sockaddr *addrs);
sctp_getladdrs函数:获取属于某个关联的本地地址
#include <netinet/sctp.h> // 若成功返回存放在addrs中的本端地址数,出错返回-1
int sctp_getladdrs(int sockfd, sctp_assoc_t id, struct sockaddr **addrs);
sctp_freeladdrs函数:用于释放sctp_getladdrs函数分配的资源
#include <netinet/sctp.h> void sctp_freeladdrs(struct sockaddr *addrs);
sctp_sendmsg函数:SCTP通过让使用者提供更多参数,来简化使用伴随辅助数据的sendmsg函数
#include <netinet/sctp.h> // 若成功返回所写的字节数,出错返回-1
sszie_t sctp_sendmsg(int sockfd, const void *msg, size_t msgsz,
const struct sockaddr *to, socklen_t tolen,
uint32_t ppid,
uint32_t flags, uint16_t stream,
uint32_t timetolive, uint32_t context);
sctp_recvmsg函数:SCTP通过让使用者提供更多参数,来简化使用伴随辅助数据的recvmsg函数
#include <netinet/sctp.h> // 若成功返回所读的字节数,出错返回-1
sszie_t sctp_recvmsg(int sockfd, const void *msg, size_t msgsz,
struct sockaddr *from, socklen_t fromlen,
struct sctp_sndrcvinfo *sinfo,
int *msg_flags);
sctp_opt_info函数:用于那些无法为SCTP使用getsockopt函数的实现提供的
#include <netinet/sctp.h> // 若成功返回0,出错返回-1
int sctp_opt_info(int sockfd, sctp_assoc_t assoc_id, int opt, void *arg, socklen_t *siz);
sctp_peeloff函数:从一个一到多式套接字中抽取一个关联,构成单独一个一到一式套接字
#include <netinet/sctp.h> // 若成功返回一个新的套接字描述符,出错返回-1
int sctp_peeloff(int sockfd, sctp_assoc_t id);
基本SCTP套接字编程常用函数的更多相关文章
- 【UNIX网络编程(二)】基本TCP套接字编程函数
基于TCP客户/server程序的套接字函数图例如以下: 运行网络I/O.一个进程必须做的第一件事就是调用socket函数.指定期望的通信协议类型. #include <sys/socket.h ...
- 探索UDP套接字编程
UDP和TCP处于同一层网络模型中,也就是运输层,基于二者之上的应用有很多,常见的基于TCP的有HTTP.Telnet等,基于UDP有DNS.NFS.SNMP等.UDP是无连接,不可靠的数据协议服务, ...
- 基本套接字编程(1) -- tcp篇
1. Socket简介 Socket是进程通讯的一种方式,即调用这个网络库的一些API函数实现分布在不同主机的相关进程之间的数据交换. 几个定义: (1)IP地址:即依照TCP/IP协议分配给本地主机 ...
- liunx 套接字编程(Linux_C++)
网络中的进程是如何通信的? 在网络中进程之间进行通信的时候,那么每个通信的进程必须知道它要和哪个计算机上的哪个进程通信.否则通信无从谈起!在本地可以通过进程PID来唯一标识一个进程,但是在网络中这是行 ...
- (转载)Linux 套接字编程中的 5 个隐患
在 4.2 BSD UNIX® 操作系统中首次引入,Sockets API 现在是任何操作系统的标准特性.事实上,很难找到一种不支持 Sockets API 的现代语言.该 API 相当简单,但新的开 ...
- Linux套接字编程
网络中的进程是如何通信的? 在网络中进程之间进行通信的时候,那么每个通信的进程必须知道它要和哪个计算机上的哪个进程通信.否则通信无从谈起!在本地可以通过进程PID来唯一标识一个进程,但是在网络中这是行 ...
- 【转】 探索UDP套接字编程
UDP和TCP处于同一层网络模型中,也就是运输层,基于二者之上的应用有很多,常见的基于TCP的有HTTP.Telnet等,基于UDP有DNS.NFS.SNMP等.UDP是无连接,不可靠的数据协议服务, ...
- 套接字编程(VC_Win32)
简介(源于维基) Berkeley套接字(也作BSD套接字应用程序接口)刚开始是4.2BSD Unix操作系统(于1983发布)的一套应用程序接口.然而,由于AT&T的专利保护着UNIX,所以 ...
- 【unix网络编程第三版】阅读笔记(三):基本套接字编程
unp第三章主要介绍了基本套接字编程函数.主要有:socket(),bind(),connect(),accept(),listen()等. 本博文也直接进入正题,对这几个函数进行剖析和讲解. 1. ...
随机推荐
- java 罕见的依赖报错 jstat: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory
java 都用了N长时间了,突然,意外地发现有一个依赖的so文件从来没找见过 # ldd /usr/bin/java linux-vdso.so.1 => (0x00007fffba76900 ...
- jquery滚动条插件slimScroll
参数 width: 'auto', //可滚动区域宽度 height: '100%', //可滚动区域高度 size: '10px', //组件宽度 c ...
- FZU 2186 小明的迷宫 【压状dp】
Problem Description 小明误入迷宫,塞翁失马焉知非福,原来在迷宫中还藏着一些财宝,小明想获得所有的财宝并离开迷宫.因为小明还是学生,还有家庭作业要做,所以他想尽快获得所有财宝并离开迷 ...
- BZOJ3611 [Heoi2014]大工程 【虚树】
题目 国家有一个大工程,要给一个非常大的交通网络里建一些新的通道. 我们这个国家位置非常特殊,可以看成是一个单位边权的树,城市位于顶点上. 在 2 个国家 a,b 之间建一条新通道需要的代价为树上 a ...
- 刷题总结——宠物收养所(bzoj1208)
题目: Description 最近,阿Q开了一间宠物收养所.收养所提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物.每个领养者都希望领养到自己满意的宠物,阿Q根据领养者的要求通过他自己发明 ...
- 阐述struts2的执行流程。
Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher.业务控制器Action和用户实现的企业业务逻辑组件. 核心控制器FilterDispatcher是Struts ...
- tarkjan求无向图割点模板
#include<bits/stdc++.h> using namespace std; typedef long long ll; int n,m; ; ; struct node { ...
- uva 11995 判别数据类型
Problem I I Can Guess the Data Structure! There is a bag-like data structure, supporting two operati ...
- Java面试题集(四)
二. Java Web基础部分 在js中如何创建一个对象? var p1={name:”tom”,”age”:12}; function Person(name,age){ this.name=nam ...
- golang并发编程goroutine+channel(一)
go语言的设计初衷除了在不影响程序性能的情况下减少复杂度,另一个目的是在当今互联网大量运算下,如何让程序的并发性能和代码可读性达到极致.go语言的并发关键词 "go" go dos ...