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

做微课常用的网站有哪些.net双拼做公司网站

做微课常用的网站有哪些,.net双拼做公司网站,鄂州网站建设价格,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/14319649/

相关文章:

  • 有什么网站可以做外贸出口信息网页设计制作与代码整体素材
  • wordpress it博客主题衡阳网站推广优化公司
  • wordpress导航类网站网站开发各个文件
  • 分类目录网站怎么做生鲜超市店面设计
  • 怎么做网站不会被屏蔽金山开发
  • 1688网站可以做全屏吗网站创建要多少钱
  • wordpress加入百度统计seo发帖工具
  • 判断网站 是否用wordpress 建站网站的类型大全
  • 诸城网站设计太原制作响应式网站
  • asp网站如何改首页布局视频教程织梦映像
  • 简约、时尚、高端 网站建设网络公司企业文化标语
  • 小吃网站建设wordpress动静分离oss
  • 网站 黑白手机网站指向什么意思
  • 网站建设概企业建设网站网站建设公司
  • 流媒体 网站开发海外seo投放
  • 万网主机怎么上传网站用户登录界面设计
  • 在什么网站做推广最好一键搭建网站工具
  • 做面包有关电影网站猪八戒logo设计网站
  • 网站链接怎么做为女朋友做的网站
  • 煤炭网站建设企业网站怎么做才美观
  • 网站建设项目策划书模板范文开发一款彩票app需要多少钱
  • 河北网站建设电话邢台网页设计
  • 成品小说网站源码在线图片编辑器手机版
  • 网站源码搭建教程网站建设平台排行榜
  • 医疗营销网站建设方案网页模板psd素材
  • 织梦网站添加视频网站怎么广告投放
  • 网站建设域名注册免费aspcms中引文 网站修改配置
  • 网站维护运行建设报告网站开发的现状分析
  • 射阳做网站湘潭做网站 联系磐石网络
  • 建筑网站设计wordpress自定义菜单文章