大家好,又见面了,我是你们的朋友全栈君。
2 .相关api介绍a socket函数:
对创建套接字(的方法进行说明。
#include sys/socket.h
intsocket(intaf、int type、int protocol );
af :地址的说明。 仅支持AF_INET格式,即ARPA互联网地址格式。
类型:指定套接字类型。 新套接字的类型描述类型,如TCP(sock_stream )或UDP (sock _ dgram )。 常用的socket类型有SOCK_STREAM、SOCK_DGRAM、SOCK_RAW、SOCK_PACKET、SOCK_SEQPACKET等。
协议:顾名思义,就是指定协议。 用于接口的协议。 如果不想指定调用方,可以使用0。 经常使用的协议是IPPROTO_TCP、IPPROTO_UDP、IPPROTO_STCP、IPPROTO_TIPC等,分别是TCP传输协议、UDP传输协议、STCP传输协议
b bind函数:
intbind(intsockfd,常数结构sockaddr * addr,
socklen_t addrlen;
c listen函数:
intlisten(intsockfd,int backlog );
d accept函数
intaccept(intsockfd,struct sockaddr *addr,socklen_t *addrlen );
3 .套接字服务端创建步骤1、创建套接字,函数套接字();
2、设置socket属性,使用函数setsockopt (;
3、在套接字上绑定IP地址、端口等信息,函数bind ();
4、打开监听,函数listen ();
5、接收客户端连接,函数accept ();
6、收发数据,函数send (和recv )或read ) )和write );
4 .创建套接字客户端步骤1、创建套接字,单击函数套接字(
2、设置socket属性,使用函数setsockopt (;
3、在套接字上绑定IP地址、端口等信息,函数bind ();
4、设置连接对象的IP地址和端口等属性
5、连接服务器,函数connect ();
6、收发数据,函数send (和recv )或read ) )和write );
函数
bzero() 能够将内存块(字符串)的前n个字节清零,在”string.h”头文件中,原型为: void bzero(void *s, int n);
【参数】s为内存(字符串)指针,n 为需要清零的字节数。 bzero()将参数s 所指的内存区域前n 个字节全部设为零。
inet_aton(将网络地址转成网络二进制的数字) 相关函数 inet_addr,inet_ntoa 表头文件 #include<sys/scoket.h> #include<netinet/in.h> #include<arpa/inet.h> 定义函数 int inet_aton(const char * cp,struct in_addr *inp); 函数说明 inet_aton()用来将参数cp所指的网络地址字符串转换成网络使用的二进制的数字,然后存于参数inp所指的in_addr结构中。 结构in_addr定义如下 struct in_addr {
unsigned long int s_addr; }; 返回值 成功则返回非0值,失败则返回0。
下面是 signal() 函数的声明。
void (*signal(int sig, void (*func)(int)))(int) 参数 sig – 在信号处理程序中作为变量使用的信号码。下面是一些重要的标准信号常量: 宏 信号 SIGABRT (Signal Abort) 程序异常终止。 SIGFPE (Signal Floating-Point Exception) 算术运算出错,如除数为 0 或溢出(不一定是浮点运算)。 SIGILL (Signal Illegal Instruction) 非法函数映象,如非法指令,通常是由于代码中的某个变体或者尝试执行数据导致的。 SIGINT (Signal Interrupt) 中断信号,如 ctrl-C,通常由用户生成。 SIGSEGV (Signal Segmentation Violation) 非法访问存储器,如访问不存在的内存单元。 SIGTERM (Signal Terminate) 发送给本程序的终止请求信号。 func – 一个指向函数的指针。它可以是一个由程序定义的函数,也可以是下面预定义函数之一: SIG_DFL 默认的信号处理程序。 SIG_IGN 忽视信号。 返回值 该函数返回信号处理程序之前的值,当发生错误时返回 SIG_ERR。
htons(将16位主机字符顺序转换成网络字符顺序) 相关函数 htonl,ntohl,ntohs 表头文件 #include<netinet/in.h> 定义函数 unsigned short int htons(unsigned short int hostshort); 函数说明 htons()用来将参数指定的16位hostshort转换成网络字符顺序。 返回值 返回对应的网络字符顺序。
设置套接字的选项。 #include <sys/socket.h> int setsockopt(int s,int level,int optname, const char *optval,int optlen); s:标识一个套接字的描述符。 level:选项定义的层次;目前仅支持SOL_SOCKET和IPPROTO_TCP层次。 optname:需设置的选项。 optval:指针,指向存放选项值的缓冲区。 optlen:optval缓冲区长度。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/158468.html原文链接:https://javaforall.cn