当前位置: 首页 > news >正文

建立网站的详细步骤海口商城网站建设

建立网站的详细步骤,海口商城网站建设,wordpress优秀免费主题,网站域名攻击基于socket通讯的方式#xff0c;无论用http或者udp或者自定义的协议#xff0c;程序结构都是类似的。这个以UDP协议为例简要说明。 #include stdio.h // 标准输入输出库 #include sys/types.h // 提供了一些数据类型#xff0c;如ssize_t #include sy…基于socket通讯的方式无论用http或者udp或者自定义的协议程序结构都是类似的。这个以UDP协议为例简要说明。 #include stdio.h // 标准输入输出库 #include sys/types.h // 提供了一些数据类型如ssize_t #include sys/socket.h // 提供socket编程的接口 #include netinet/in.h // 提供IPv4和IPv6地址的结构体定义 #include arpa/inet.h // 提供网络地址转换的函数如inet_pton和inet_ntop注意这里应该是arpa/inet.h的拼写错误正确的是arpa/inet.h但您已经写对了 #include unistd.h // 提供对POSIX操作系统API的访问如close函数 #include stdlib.h // 标准库提供内存分配、程序退出等函数 #include sys/stat.h // 提供对文件状态的操作本程序中未使用 #include fcntl.h // 提供对文件控制的操作如文件描述符的设置本程序中未使用 #include string.h // 提供字符串处理的函数如bzero#define N 64 // 定义缓冲区的大小int main(int argc, char const *argv[]) // 程序的主入口 {int sockfd; // 声明socket文件描述符sockfd socket(AF_INET, SOCK_DGRAM, 0); // 创建一个UDP socketif(sockfd 0) // 检查socket是否创建成功{perror(sock err); // 如果创建失败打印错误信息return -1; // 并返回-1表示错误}// 绑定套接字(ipport)struct sockaddr_in addr; // 声明一个IPv4地址的结构体addr.sin_family AF_INET; // 设置地址族为IPv4addr.sin_port htons(atoi(argv[2])); // 将命令行参数转换为整数并转换为网络字节序后设置为端口号// 自动绑定所有的本机网卡的地址addr.sin_addr.s_addr INADDR_ANY; // 设置IP地址为INADDR_ANY表示绑定到所有可用的网络接口int addrlen sizeof(addr); // 获取地址结构体的长度if(bind(sockfd, (struct sockaddr *)addr, addrlen) 0) // 绑定socket到指定的地址和端口{perror(bind err); // 如果绑定失败打印错误信息return -1; // 并返回-1表示错误}ssize_t len; // 声明一个变量来存储接收到的数据长度char buf[N] {0}; // 声明并初始化一个缓冲区来存储接收到的数据struct sockaddr_in cliaddr; // 声明一个结构体来存储客户端的地址信息// cliaddr接收客户端的地址while (1) // 进入一个无限循环来等待客户端的数据{bzero(buf, N); // 清空缓冲区len recvfrom(sockfd, buf, N, 0, (struct sockaddr *)cliaddr, addrlen); // 从socket接收数据if(len 0) // 如果成功接收到数据{printf(recv data%s\n, buf); // 打印接收到的数据sendto(sockfd, buf, len, 0, (struct sockaddr *)cliaddr, addrlen); // 将接收到的数据发送回客户端注意这里应该使用len而不是N}}// 关闭socket注意由于有无限循环这行代码实际上永远不会被执行close(sockfd); // 关闭socket以释放资源return 0; // 程序正常结束 } 程序功能 这个程序实现了一个简单的UDP服务器它监听一个指定的端口接收来自客户端的数据并将接收到的数据原封不动地发送回客户端回显服务器。 程序结构 初始化创建socket设置地址和端口绑定socket。接收数据进入一个无限循环等待并接收来自客户端的数据。处理数据打印接收到的数据并将数据发送回客户端。关闭socket实际上不会被执行在循环结束后关闭socket。 UDP发送和接收函数的参数 recvfrom()函数 sockfdsocket文件描述符。buf指向存储接收数据的缓冲区的指针。len缓冲区的大小。flags标志位通常设置为0。src_addr指向存储发送方地址信息的结构体的指针。addrlen指向存储地址结构体长度的变量的指针。sendto()函数 sockfdsocket文件描述符。buf指向要发送的数据的缓冲区的指针。len要发送的数据的长度注意这里应该使用实际接收到的数据长度而不是缓冲区的大小。flags标志位通常设置为0。dest_addr指向存储接收方地址信息的结构体的指针。addrlen地址结构体的长度。 其中 sockaddr_in 结构体在 IPv4 网络编程中用于表示一个 Internet 地址。这个结构体定义在 netinet/in.h 头文件中在 POSIX 兼容的系统中并且它通常用于 bind(), connect(), sendto(), recvfrom() 等网络相关的系统调用中以指定或接收网络地址信息。 sockaddr_in 结构体的定义 struct sockaddr_in {sa_family_t sin_family; // 地址族对于 IPv4 来说是 AF_INETuint16_t sin_port; // 端口号使用网络字节序大端模式struct in_addr sin_addr; // IPv4 地址也使用网络字节序// 在某些实现中可能有一个用于填充的数组以确保结构体大小与 sockaddr 一致// char sin_zero[8]; // 这通常用于保持结构体大小的一致性但现代代码通常不直接使用它 }; sin_family这是一个 sa_family_t 类型的字段用于指定地址族。对于 IPv4 地址它应该被设置为 AF_INET。 sin_port这是一个 uint16_t 类型的字段用于指定端口号。端口号应该以网络字节序大端模式存储这通常意味着在将主机字节序小端模式或大端模式取决于具体的系统架构的端口号传递给网络之前需要使用 htons() 函数进行转换。 sin_addr这是一个 struct in_addr 类型的字段它包含了一个 IPv4 地址。IPv4 地址也应该以网络字节序存储。struct in_addr 通常定义为一个包含单个 uint32_t 类型字段 s_addr 的结构体用于存储 32 位的 IPv4 地址。 sin_zero在某些实现中sockaddr_in 结构体可能包含一个名为 sin_zero 的字符数组字段用于填充以确保结构体的大小与更通用的 sockaddr 结构体一致。然而在现代的网络编程实践中这个字段通常不被直接使用而且可能在一些实现中根本不存在。如果你的系统定义中包含了这个字段你通常不需要关心它只需要确保在初始化 sockaddr_in 结构体时将其清零尽管这通常不是必需的因为系统调用通常只关心 sin_family, sin_port, 和 sin_addr 字段。 在使用 sockaddr_in 结构体时你需要确保正确地设置 sin_family, sin_port, 和 sin_addr 字段并且如果 sin_zero 字段存在也最好将其清零尽管这通常不是错误源。然后你可以将这个结构体的地址作为参数传递给网络相关的系统调用。
http://www.hkea.cn/news/14280654/

相关文章:

  • 免费网站创建工具优化视频
  • wordpress弹框登录seo百度推广
  • 顺德网站建设itshunde网站代理备案步骤
  • 建设银行投诉网站首页如何做网站站内搜索
  • 腾讯云可以做网站吗3商场设计师
  • 学用php做网站制作网站微信登陆入口
  • 品牌型网站建设理论韩国出线了吗
  • 南充网站建设与维护品牌策划与管理
  • 网站权重怎么刷建造师人才网
  • 佛山网站建设 骏域网站腾讯街景地图实景下载
  • 东莞视频网站制作做网站是不是就能上传东西
  • 2016企业网站源码高端企业网站建设服务商
  • 云智网站建设公司室内设计效果图用什么软件做的
  • wordpress建站安全性做公司网站都需要什么资料
  • 国外的服务器网站襄阳 网站建设
  • 当今做啥网站致富婺源做网站
  • 国外做婚纱的网站成都旅游图高清大图
  • 网站建设改版德阳机械加工网
  • net网站开发实例营销网站开发渠道有哪些
  • 营销型外贸网站it运维工程师月薪
  • 济南建站公司注意事项网站设计要点 优帮云
  • 工艺品网站源码商城网站模版
  • 郑州免费建站网站域名备案变更
  • 营销型网站的网址东莞seo网站建设
  • 模板网站外链做不起来做矿业的郑州公司网站
  • 绵阳市建设工程质监站网站wordpress 中文tag
  • 杭州市下城区建设厅网站网站什么英文字体
  • 别人用我公司营业执照备案做网站呼和浩特网站推广公司
  • 做服务器的网站的模板购物类网站模板
  • 2018做网站前景如何wordpress idstore