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

高端网站哪个比较好建设购物网站多少钱

高端网站哪个比较好,建设购物网站多少钱,网站服务器放置地怎么填,wordpress页面属性模板怎么添加15. 网络编程 - sys/socket.h 和 netinet/in.h 网络编程在C语言中是通过套接字来实现的#xff0c;套接字提供了进程间通信的端点。C语言的网络编程涉及到创建套接字、绑定地址、监听和接收数据。以下是网络编程的关键概念和基本实现方法。 15.1. 套接字基础…15. 网络编程 - sys/socket.h 和 netinet/in.h 网络编程在C语言中是通过套接字来实现的套接字提供了进程间通信的端点。C语言的网络编程涉及到创建套接字、绑定地址、监听和接收数据。以下是网络编程的关键概念和基本实现方法。 15.1. 套接字基础 15.1.1. 套接字类型与协议 套接字是网络通信的基础它分为不同的类型和协议 套接字类型 流套接字SOCK_STREAM基于TCP协议提供可靠的双向字节流通信。数据报套接字SOCK_DGRAM基于UDP协议无连接面向消息通信时不保证消息顺序和完整性。 协议 TCP传输控制协议提供可靠、有序的字节流服务比如HTTP。UDP用户数据报协议提供较低效能的、不可靠的数据报服务比如DNS查询。 15.1.2. 创建和绑定套接字socket, bind 创建套接字并绑定到指定IP和端口是建立网络服务的基础步骤。 socket 函数用于创建一个新的套接字。 int socket(int domain, int type, int protocol);domain地址族一般为 AF_INETIPv4或 AF_INET6IPv6。type套接字类型如 SOCK_STREAMTCP或 SOCK_DGRAMUDP。protocol通常设为 0自动匹配。 bind 函数将套接字与特定IP地址和端口绑定。 int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);sockfd由 socket 返回的文件描述符。addrIP地址和端口信息结构体通常为 struct sockaddr_in。addrlen地址结构体的长度。 #include sys/socket.h #include netinet/in.h #include stdio.h #include string.hint main() {int sockfd socket(AF_INET, SOCK_STREAM, 0); // 创建套接字 [1]struct sockaddr_in server_addr;memset(server_addr, 0, sizeof(server_addr)); // 清零server_addr.sin_family AF_INET; // IPv4server_addr.sin_addr.s_addr INADDR_ANY; // 任意可用的接口server_addr.sin_port htons(8080); // 绑定端口8080bind(sockfd, (struct sockaddr*)server_addr, sizeof(server_addr)); // 绑定套接字 [2]return 0; }[1]创建套接字使用 socket 函数创建TCP套接字。IPv4地址AF_INET流套接字类型。[2]绑定套接字bind 函数将创建的套接字绑定到结构体中指定的IP地址和端口上。 15.2. 客户端与服务器模型 15.2.1. TCP 服务器listen, accept 在创建并绑定了套接字后服务器需要监听连接和接受请求。 listen 函数将套接字设置为被动监听状态。 int listen(int sockfd, int backlog);sockfd套接字描述符。backlog等待连接队列的最大长度。 accept 函数从连接队列中取出一个连接请求。 int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);sockfd监听中的套接字。addr客户机的IP地址和端口信息。addrlen用户提供的地址结构的大小。 listen(sockfd, 5); // 开始监听 [3] struct sockaddr_in client_addr; socklen_t addrlen sizeof(client_addr); int client_sockfd accept(sockfd, (struct sockaddr*)client_addr, addrlen); // 接受连接 [4][3]监听连接listen 将套接字置为监听状态。[4]接受连接accept 从队列中取出一个连接。 15.2.2. TCP 客户端connect 客户端需要连接到服务端的指定地址和端口。 connect 函数用于连接到服务端。int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);sockfd套接字描述符。addr服务端的 IP 地址和端口信息。addrlen服务器地址信息的结构体大小。 int sockfd socket(AF_INET, SOCK_STREAM, 0); // 创建套接字 struct sockaddr_in server_addr; memset(server_addr, 0, sizeof(server_addr)); // 清空地址 server_addr.sin_family AF_INET; // IPv4 inet_pton(AF_INET, 127.0.0.1, server_addr.sin_addr); // IP 地址 [5] server_addr.sin_port htons(8080); // 目标端口 connect(sockfd, (struct sockaddr*)server_addr, sizeof(server_addr)); // 发起连接请求 [6][5]设置地址使用 inet_pton 设置目标服务的 IP。[6]发起连接请求connect 连接到指定服务器。 15.2.3. 数据传输send, recv 一旦连接建立服务端和客户端之间就可以通过以下函数进行数据传输。 send 函数用于发送数据。 ssize_t send(int sockfd, const void *buf, size_t len, int flags);sockfd套接字描述符。buf要发送的缓冲区。len缓冲区长度。flags传输标志通常设置为0。 recv 函数用于接收数据。 ssize_t recv(int sockfd, void *buf, size_t len, int flags);用法与 send 类似。 char buffer[1024]; send(client_sockfd, Hello, World!, 13, 0); // 发送信息 [7] recv(client_sockfd, buffer, sizeof(buffer), 0); // 接收信息 [8][7]发送信息使用 send 传输数据。[8]接收信息使用 recv 接收数据。 15.3. 高级套接字编程 15.3.1. 多路复用select, poll 多路复用允许程序在一个线程中监视多个文件描述符上的事件。 select 函数用于监视多个文件描述符。 int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);poll 函数与 select 相似使用 pollfd 结构体数组。 int poll(struct pollfd *fds, nfds_t nfds, int timeout);15.3.2. UDP 套接字编程 UDP 套接字不需要连接可以直接使用 sendto 和 recvfrom。 sendto 函数用于发送UDP数据包。 ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,const struct sockaddr *dest_addr, socklen_t addrlen);recvfrom 函数用于接收UDP数据包。 ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,struct sockaddr *src_addr, socklen_t *addrlen);char udp_buffer[1024]; struct sockaddr_in dest_addr; memset(dest_addr, 0, sizeof(dest_addr)); dest_addr.sin_family AF_INET; inet_pton(AF_INET, 192.168.1.1, dest_addr.sin_addr); dest_addr.sin_port htons(9090); sendto(sockfd, UDP message, 11, 0, (struct sockaddr*)dest_addr, sizeof(dest_addr)); // 发送UDP [9] recvfrom(sockfd, udp_buffer, sizeof(udp_buffer), 0, NULL, NULL); // 接收UDP [10][9]发送UDP: 使用 sendto 发出数据。[10]接收UDP: 使用 recvfrom 接收UDP数据。 通过这些概念和代码示例你可以开始进行C语言的网络编程创建基本的网络应用程序。无论是客户端还是服务器端处理正确使用这些网络编程API是至关重要的。
http://www.hkea.cn/news/14266868/

相关文章:

  • wordpress如何建站呢wordpress邮件分析插件
  • 做网站开发教程社保门户网站建设方案
  • 房屋出租网站模板深圳市升华建设有限公司网站
  • 网站开发课程知识点总结泉州建站模板
  • 10g空间网站做视频网站网站的发展前景
  • 怎样做网站吸引人软件上传到那个网站做宣传
  • 自己做挖矿网站平面广告设计公司
  • 连云港做网站公司哪家好顺德网站建设原创
  • 2008 访问网站提示建设中更改wordpress主题语言包
  • 网站开发的pc或移动端山东省建设监理协会官方网站
  • 网站开发制作费用数码网站名
  • 龙海网站建设价格wordpress页面上分页
  • 海外网站哪个最好西安高校定制网站建设
  • 网站网站设计公司网站开发的比较
  • 商丘做网站sqlongliqi中国商铺网
  • 有人做网站吗wordpress文章上的图片显示不
  • 威海自适应网站建设建设通下载
  • 公司网站建设征稿令电商扶贫网站建设
  • 怎么弄一个网站python做网站项目
  • 网站做数据监测威海外贸网站建设多少钱
  • 全球网站访问量排名网站建设及解析流程
  • 建设商城网站的难点做视频网站广告收费
  • 网站建设创业书品牌建设对企业发展的重要性
  • 网页做得好的网站wordpress 二次元插件
  • 广州网站(建设信科网络)深圳工程建设交易中心网
  • 芜湖酒店网站建设wordpress科技网站模板
  • 做ppt的模板网站有哪些深圳网站建设找智恒网络
  • 做包装找灵感看什么网站淘宝图片做链接的网站
  • 网站模板修改教程网站建设 外文文献
  • 如何查询网站域名辽宁省建设工程信息网官网招标