AI技术能否构建网站?网络工程公司应具备哪些资质?
摘要:ai可以做网站吗,网络工程公司需要什么资质,京东网站建设的详细策划,株洲网站排名udp编程接口 一个UDP程序的编写可以分为3步: 创建一个网络套接字: 它相当于文件操作时的文件描
ai可以做网站吗,网络工程公司需要什么资质,京东网站建设的详细策划,株洲网站排名udp编程接口
一个UDP程序的编写可以分为3步#xff1a; 创建一个网络套接字#xff1a; 它相当于文件操作时的文件描述符#xff0c;是一个程序进行网络通讯的门户#xff0c; 所有的网络操作都要基于它 绑定IP和端口#xff1a; 需要为网络套接字填充IP和端口信息 但是…udp编程接口
一个UDP程序的编写可以分为3步 创建一个网络套接字 它相当于文件操作时的文件描述符是一个程序进行网络通讯的门户 所有的网络操作都要基于它 绑定IP和端口 需要为网络套接字填充IP和端口信息 但是有些时候无需手动填充让系统自动自动分配即可 发送和接收消息 发送消息需要指明对方的IP和端口号接收消息不需要直接从套接字拿就行
socket
申请一个套接字 套接字相当于一个文件描述符其中存放着IP、端口、网络协议等信息所有的网络操作都要基于这个网络套接字就像所有文件操作都要基于文件描述符一样 函数原型及参数解析
#include sys/socket.h
#include sys/types.h int socket(int domain, int type, int protocol);domainsocket的域选择本地通讯或网络通信 AF_UNIX(AF_LOCAL)本地通讯 AF_INETIPv4协议网络通讯 AF_INET6IPv6协议网络通讯 type套接字的类型决定通信时对应的报文udp–用户数据报tcp–流式 SOCK_STREAM流式–tcp SOCK_DGRAM数据报格式无链接不可靠–udp protocol协议类型网络应用中一般用 0 返回值返回一个文件描述符
Example
#include sys/socket.h
#include sys/types.h
int main()
{int sockfd_ socket(AF_INET, SOCK_DGRAM, 0);if (sockfd_ 0){exit(1);}
}bind
绑定网络信息
将网络信息写入网络套接字对应的内核区域
函数原型及参数解析
#include sys/socket.h
#include sys/types.h
#include netinet/in.h//struct sockaddr结构体定义
int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);sockfd网络套接字, 表示将网络信息绑定到这个套接字 addr要进行绑定的网络信息IP、端口号 我们要用一个结构体存储存储网络信息然后把结构体传入bind函数用于绑定 由于socket创建的套接字需要兼容本地、网络等多个域多个协议而这些协议需要绑定的信息也不尽相同对应描述信息的的结构体就不同如 对于网络信息的描述就要有IP、端口号、网络通讯协议下面的struct sockaddr_in结构体本地信息的描述就要有路径名和本地的各种通讯协议下面的struct sockaddr_un结构体 、 我们可以用一种多态的理念直接给bind函数传入两种类型结构体变量的首地址当函数内要获取网络信息的时候先读前16位知道当前要绑定信息的域和协议 进而再对后面的位进行特定化读取 这个addr参数完全可以用一个void*来接收两种不同的结构体指针但是由于一些历史原因当时还没有void*的语法 所以函数编写者新定义了一个结构体 struct sockaddr 用法也很简单只需要把struct sockaddr_in*或struct sockaddr_un*强转为 struct sockaddr*传入即可 bind函数内部会自动通过通过前16位判断要选择哪种数据类型的绑定 sockaddr 结构: /* Structure describing a generic socket address. */
struct sockaddr{__SOCKADDR_COMMON (sa_); /* Common data: address family and length. */char sa_data[14]; /* Address data. */};sockaddr_in 结构: struct sockaddr_in
{__SOCKADDR_COMMON (sin_); //16位地址类型此句相当于unsigned short sin_family;in_port_t sin_port; //端口号struct in_addr sin_addr; //IP地址/* Pad to siz
