C语言socket[通俗易懂]

C语言socket[通俗易懂]2.相关api介绍asocket函数:对创建套接字(的方法进行说明。#includesys/socket.hintsocket(intaf、inttype、intprotocol);af:地址的说明。仅支持AF_INET格式,即ARPA互联网地址格式。类型:指定套接字类型。新套接字的类型描述类型,如TCP(sock_stream)或UDP(sock_dgram)。常用的socket类型有SOCK_STREAM、SOCK_DGRAM、SOCK_RAW、SOCK_PACK

大家好,又见面了,我是你们的朋友全栈君。

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缓冲区长度。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/158468.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号