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

做微课常用的网站有哪些国家对网站建设补补贴

做微课常用的网站有哪些,国家对网站建设补补贴,wordpress下载视频,百度怎么收录我的网站Socket 函数详细讲解和 C 示例 一、 Socket 基本概念1. Socket 简介2. Socket 编程步骤3. TCP Socket 编程示例服务器端客户端 4. 详细说明 二、 socket 函数1. domain 通讯的协议家族2. type 数据传输的类型3. protocol 最终使用的协议返回值示例 三、TCP 和 UDP的区别1. TCP 示例 一、 Socket 基本概念1. Socket 简介2. Socket 编程步骤3. TCP Socket 编程示例服务器端客户端 4. 详细说明 二、 socket 函数1. domain 通讯的协议家族2. type 数据传输的类型3. protocol 最终使用的协议返回值示例 三、TCP 和 UDP的区别1. TCP传输控制协议2. UDP用户数据报协议3. 总结示例应用 一、 Socket 基本概念 1. Socket 简介 Socket 是一种通信机制允许在不同主机之间或同一主机的不同进程之间进行数据交换。使用 socket 编程可以实现 TCP 和 UDP 协议的网络通信。 2. Socket 编程步骤 创建 Socket绑定仅服务器监听仅服务器接受连接仅服务器连接服务器仅客户端发送和接收数据关闭 Socket 3. TCP Socket 编程示例 服务器端 #include iostream #include cstring #include unistd.h #include sys/types.h #include sys/socket.h #include netinet/in.h#define PORT 8080 #define BUFFER_SIZE 1024int main() {int server_fd, new_socket;struct sockaddr_in address;int addrlen sizeof(address);char buffer[BUFFER_SIZE] {0};// 创建 socket 文件描述符if ((server_fd socket(AF_INET, SOCK_STREAM, 0)) 0) {perror(socket failed);exit(EXIT_FAILURE);}// 绑定address.sin_family AF_INET;address.sin_addr.s_addr INADDR_ANY;address.sin_port htons(PORT);if (bind(server_fd, (struct sockaddr *)address, sizeof(address)) 0) {perror(bind failed);close(server_fd);exit(EXIT_FAILURE);}// 监听if (listen(server_fd, 3) 0) {perror(listen failed);close(server_fd);exit(EXIT_FAILURE);}// 接受连接if ((new_socket accept(server_fd, (struct sockaddr *)address, (socklen_t*)addrlen)) 0) {perror(accept failed);close(server_fd);exit(EXIT_FAILURE);}// 读取客户端发送的数据read(new_socket, buffer, BUFFER_SIZE);std::cout Message from client: buffer std::endl;// 发送数据给客户端const char *message Hello from server;send(new_socket, message, strlen(message), 0);std::cout Hello message sent\n;// 关闭 socketclose(new_socket);close(server_fd);return 0; }客户端 #include iostream #include cstring #include unistd.h #include arpa/inet.h#define PORT 8080 #define BUFFER_SIZE 1024int main() {int sock 0;struct sockaddr_in serv_addr;char buffer[BUFFER_SIZE] {0};// 创建 socket 文件描述符if ((sock socket(AF_INET, SOCK_STREAM, 0)) 0) {std::cerr Socket creation error std::endl;return -1;}serv_addr.sin_family AF_INET;serv_addr.sin_port htons(PORT);// 将地址转换成二进制if (inet_pton(AF_INET, 127.0.0.1, serv_addr.sin_addr) 0) {std::cerr Invalid address/ Address not supported std::endl;return -1;}// 连接服务器if (connect(sock, (struct sockaddr *)serv_addr, sizeof(serv_addr)) 0) {std::cerr Connection Failed std::endl;return -1;}// 发送数据给服务器const char *message Hello from client;send(sock, message, strlen(message), 0);std::cout Hello message sent\n;// 读取服务器发送的数据read(sock, buffer, BUFFER_SIZE);std::cout Message from server: buffer std::endl;// 关闭 socketclose(sock);return 0; } 4. 详细说明 创建 Socket socket(int domain, int type, int protocol) domain: 使用的协议族例如 AF_INET 表示 IPv4 网络协议。type: Socket 类型例如 SOCK_STREAM 表示面向连接的 TCP。protocol: 一般设置为 0让系统自动选择合适的协议。 绑定 bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen) 将 socket 绑定到特定的 IP 地址和端口号。 监听 listen(int sockfd, int backlog) 使 socket 处于监听状态准备接受连接。backlog 指定等待连接队列的最大长度。 接受连接 accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen) 从监听队列中接受一个连接返回一个新的 socket 文件描述符用于与客户端通信。 连接服务器 connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen) 客户端使用这个函数连接到服务器。 发送和接收数据 send(int sockfd, const void *buf, size_t len, int flags)recv(int sockfd, void *buf, size_t len, int flags)read 和 write 也可以用于接收和发送数据。 关闭 Socket close(int sockfd) 关闭 socket 文件描述符。 二、 socket 函数 socket(int domain, int type, int protocol) domain: 使用的协议族例如 AF_INET 表示 IPv4 网络协议。type: Socket 类型例如 SOCK_STREAM 表示面向连接的 TCP。protocol: 一般设置为 0让系统自动选择合适的协议。 1. domain 通讯的协议家族 PF_INET IPv4互联网协议族。PF_INET6 IPv6互联网协议族。PF_LOCAL 本地通信的协议族。PF_PACKET 内核底层的协议族。PF_IPX IPX Novell协议族。 IPv6尚未普及其它的不常用。 2. type 数据传输的类型 SOCK_STREAM 面向连接的socket -----1数据不会丢失2数据的顺序不会错乱3双向通道。SOCK_DGRAM 无连接的socket -----1数据可能会丢失2数据的顺序可能会错乱3传输的效率更高。 3. protocol 最终使用的协议 protocol协议类型 通常为 0表示自动选择与指定域和类型匹配的协议。对于 AF_INET 和 SOCK_STREAM默认为 IPPROTO_TCP。对于 AF_INET 和 SOCK_DGRAM默认为 IPPROTO_UDP。 返回值 成功时返回一个新的套接字描述符。失败时返回 -1并设置 errno 以指示错误类型。 示例 int sockfd socket(AF_INET, SOCK_STREAM, 0); if (sockfd -1) {perror(socket failed);exit(EXIT_FAILURE); }在IPv4网络协议家族中数据传输方式为SOCK_STREAM的协议只有IPPROTO_TCP数据传输方式为SOCK_DGRAM的协议只有IPPROTO_UDP。 本参数也可以为0 socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); // 创建tcp的sock socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP); // 创建udp的sock三、TCP 和 UDP的区别 TCP传输控制协议和UDP用户数据报协议是两种主要的传输层协议用于网络通信。它们有各自的优缺点和适用场景。 1. TCP传输控制协议 连接导向 TCP是面向连接的协议在传输数据之前需要建立连接三次握手。连接建立后双方可以进行可靠的数据传输。 可靠性 提供可靠的数据传输确保数据包按顺序到达并且没有丢失或重复。使用确认机制、重传机制和校验和来保证数据的完整性和正确性。 流量控制 具有流量控制和拥塞控制机制防止网络拥塞和发送方发送速度过快。使用滑动窗口协议来管理流量控制。 传输速度 由于其可靠性和流量控制机制TCP的传输速度相对较慢但可靠性高。 头部开销 TCP头部较大通常为20字节不包括可选字段。 适用场景 适用于需要高可靠性的数据传输场景如网页浏览HTTP/HTTPS、文件传输FTP、电子邮件SMTP、远程登录SSH等。 2. UDP用户数据报协议 无连接 UDP是无连接的协议在传输数据之前不需要建立连接。数据包独立发送无需维护连接状态。 不可靠性 提供不可靠的数据传输不保证数据包的顺序、无丢失和无重复。发送数据后不确认是否到达目的地不重传丢失的数据包。 无流量控制 UDP没有流量控制和拥塞控制机制发送速度完全取决于应用程序。 传输速度 由于没有连接建立、流量控制和重传机制UDP的传输速度较快但可靠性低。 头部开销 UDP头部较小固定为8字节。 适用场景 适用于对传输速度要求高但对可靠性要求不高的场景如视频直播、在线游戏、实时语音通话VoIP、广播通信等。 3. 总结 特性TCPUDP连接性面向连接需要三次握手无连接可靠性可靠传输保证顺序和完整性不可靠传输不保证顺序和完整性流量控制有流量控制和拥塞控制无流量控制和拥塞控制传输速度较慢较快头部开销较大20字节不包括可选字段较小8字节适用场景需要高可靠性的应用需要高速度的应用 示例应用 TCPHTTP/HTTPS、FTP、SMTP、SSH、TelnetUDPDNS查询、DHCP、TFTP、在线游戏、视频流、实时音频 了解TCP和UDP的区别及其适用场景可以帮助开发人员在实际网络编程中选择合适的传输层协议以满足不同应用的需求。
http://www.hkea.cn/news/14574589/

相关文章:

  • 网站建设费属于广告费用吗新颖的公司名字大全
  • 哪里有帮做微课的网站wordpress 3.3.2
  • 咸阳免费做网站怎么创建网站平台赚钱
  • 传播学视角下网站建设研究广西网站开发公司
  • 网站建设费汇算清缴WordPress极品主题
  • 滁州网站建设梦天堂合肥公司建设网站
  • 网站说服力 营销...wordpress上传文件自动按时间命名
  • vs设置网站开发环境网络营销运营推广
  • 大学网站建设图莱芜住房和城乡建设厅网站
  • 12306网站建设费用wordpress主题开发出
  • 福建seo网站廊坊视频优化效果
  • 南昌网站建设模板合作网站首页点击中文英文链接 翻译成对应的语言 怎么做
  • 企业的网站品牌推广自己建立旅游的网站建设
  • 网店网站建设规划方案做网站怎么实现鼠标经过图像
  • iview做的网站盐城市建设局网站打不开
  • 网站建设seo 视频国内好用的搜索引擎
  • 做三角渐变用哪个网站商标注册网址官方
  • 院校网站建设对比分析实训报总结怎么设立网站
  • 数字校园建设专题网站网站开发费用报价
  • 贵州建设厅网站wordpress主题存放目录
  • 哪里的佛山网站建设舟山网站网站建设
  • 省建设执业资格注册中心网站设计风格网站欣赏
  • 做黑网站赚钱吗贵阳网站建设宏思锐达
  • 酒水销售网站模板制作图片软件免费版
  • 网站开发资金规模360建筑网密码忘了
  • 什么是网站开发公司网站备案名称更换
  • 会议专题网站建设报价单百度电脑版下载
  • 网站数据库网络错误怎么解决方案php网站建设的公司
  • 婚庆网站名字网站建设 报价单 doc
  • 免费网站平台推荐网站全网推广好还是做58精准好