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


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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Ubuntu修改用户密码_乌班图修改root用户名和密码

    Ubuntu修改用户密码_乌班图修改root用户名和密码ubuntu下有时候登录了当前账户之后,如果想使用root账户,不知道密码的情况下拒绝登录,因此需要修改root账户的密码。通过执行:sudopasswdroot来设置root账户密码。也可以通过:sudopasswdusername来更改特定账户密码。…

    2022年9月29日
    1
  • python运行代码不成功_Python | PyCharm无法直接运行(Run)脚本

    python运行代码不成功_Python | PyCharm无法直接运行(Run)脚本1刚开始是这样,笔者在PyCharm新建了一个package,然后放了一个脚本2发现无法直接运行:没有Run选项,只有Rununittests选项。于是把脚本拷贝到另一个不是package的目录下3发现在这个目录下,除了这个脚本以外,其余的脚本都是可以运行的4看来是脚本的内容有问题了。看看笔者这个cannot_run的脚本5笔者在Python自带的交互环境IDLE上,运行这个代码,也是正常的。真…

    2022年8月29日
    4
  • OHEM算法论文理解

    OHEM算法论文理解OHEM层

    2022年5月7日
    38
  • 最好懂的python文件读写(详解)

    最好懂的python文件读写(详解)目录  1、文件读写的流程  2、文件读写的几种常见模式  3、read、readline、readlines的区别  4、对于一个10G的大文件,怎么高效的查看文件中的内容呢?1、文件读写的流程1)类比windows中手动操作txt文档,说明python中如何操作txt文件?①windows中手动操作txt文件的步骤找到word文档打开word文档查看(或操作)word文…

    2022年6月2日
    34
  • Python#Typora-Python笔记[通俗易懂]

    Python#Typora-Python笔记[通俗易懂]python基础笔记

    2022年5月12日
    33
  • 服务器系统防盗,Windows系统中IIS防盗链设置详细介绍Windows服务器操作系统 -电脑资料…

    服务器系统防盗,Windows系统中IIS防盗链设置详细介绍Windows服务器操作系统 -电脑资料…在Windows系统中IIS防盗链设置需一个ISAPI_Rewrite组件,然后我们把ISAPI_Rewrite加载到iis中,再就可以在iis中的httpd.ini中写防盗链功能了,下面我来给各位同学介绍,首页我们安装一个组件:isapi.msi安装完后,对软件安装目录的IIS_WGP组的读写权限(重要,如果不设置安装完后你的网站就会直接ServiceUnavailable,无法访问)。假如你…

    2022年7月23日
    11

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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