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

湖南医院响应式网站建设企业傻瓜做网站

湖南医院响应式网站建设企业,傻瓜做网站,百度广告商,企业内部门户网站建设方案UDP 是不具有可靠性的数据报协议。细微的处理它会交给上层的应用去完成。在 UDP 的情况下,虽然可以确保发送消息的大小,却不能保证消息一定会到达。因此,应用有时会根据自己的需要进行重发处理。 1.UDP协议的主要特点: &#xf…

        UDP 是不具有可靠性的数据报协议。细微的处理它会交给上层的应用去完成。在 UDP 的情况下,虽然可以确保发送消息的大小,却不能保证消息一定会到达。因此,应用有时会根据自己的需要进行重发处理。

1.UDP协议的主要特点:

(1)UDP是无连接的,可以减少开销和发送数据之前的时延。

(2)UDP使用尽最大努力交付,不保证可靠交付,主机不需要维持复杂的连接状态表。

(3)UDP是面向报文的,一次交付一个完整的报文。

(4)UDP没有拥塞控制,因此网络出现的拥塞不会使得源主机的发送速率降低。

(5)UDP支持一对一、一对多、多对一、多对多的交互通信。

(6)UDP的首部开销小,只有八字节。

2.函数接口

(1)recvfrom():接收数据

ssize_t recvfrom(int sockfd,void*buf,size_t len,int flags,struct sockaddr * src_addr,socklen_t * addrlen);

参数说明:

sockfd:套接字描述符

buf:接收缓存区的首地址

len:接收缓存区的大小

flags:0//调用方式标志位

src_addr:发送端的网络信息结构体的指针

addrlen:发送端的网络信息结构体的大小的指针

返回值:

成功:接收的字节个数

失败:-1

0:客户端退出

(2)sendto():发送数据

ssize_t sendto(int sockfd,constvoid*buf,size_t len,int flags,const struct sockaddr* dest_addr,socklen_t addrlen);

参数说明:

sockfd:套接字描述符

buf:发送缓存区的首地址

len:发送缓存区的大小

flags:0

src_addr:接收端的网络信息结构体的指针

addrlen:接收端的网络信息结构体的大小

返回值:

成功:发送的字节个数

失败:-1

3.示例

服务端:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>#define MAX_BUFFER_SIZE 1024
#define SERVER_PORT 8888int main() {int sockfd;struct sockaddr_in server_addr, client_addr;char buffer[MAX_BUFFER_SIZE];// 创建UDP套接字if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {perror("socket creation failed");exit(EXIT_FAILURE);}memset(&server_addr, 0, sizeof(server_addr));memset(&client_addr, 0, sizeof(client_addr));// 设置服务器地址和端口server_addr.sin_family = AF_INET;server_addr.sin_addr.s_addr = INADDR_ANY;server_addr.sin_port = htons(SERVER_PORT);// 绑定服务器地址和端口if (bind(sockfd, (const struct sockaddr*)&server_addr, sizeof(server_addr)) < 0) {perror("bind failed");exit(EXIT_FAILURE);}printf("Server running on port %d...\n", SERVER_PORT);while (1) {// 接收来自客户端的数据memset(buffer, 0, sizeof(buffer));socklen_t client_len = sizeof(client_addr);ssize_t message_size = recvfrom(sockfd, buffer, sizeof(buffer) - 1, 0, (struct sockaddr*)&client_addr, &client_len);if (message_size < 0) {perror("recvfrom failed");exit(EXIT_FAILURE);}// 打印客户端发送的数据printf("Client message: %s\n", buffer);// 向客户端发送响应if (sendto(sockfd, buffer, message_size, 0, (struct sockaddr*)&client_addr, sizeof(client_addr)) < 0) {perror("sendto failed");exit(EXIT_FAILURE);}}// 关闭套接字close(sockfd);return 0;
}

客户端:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>#define MAX_BUFFER_SIZE 1024
#define SERVER_IP "127.0.0.1"
#define SERVER_PORT 8888int main() {int sockfd;struct sockaddr_in server_addr;char buffer[MAX_BUFFER_SIZE];// 创建UDP套接字if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {perror("socket creation failed");exit(EXIT_FAILURE);}memset(&server_addr, 0, sizeof(server_addr));// 设置服务器地址和端口server_addr.sin_family = AF_INET;server_addr.sin_addr.s_addr = inet_addr(SERVER_IP);server_addr.sin_port = htons(SERVER_PORT);// 从标准输入读取数据printf("Enter message: ");fgets(buffer, MAX_BUFFER_SIZE, stdin);// 发送数据到服务器sendto(sockfd, buffer, strlen(buffer), 0, (struct sockaddr*)&server_addr, sizeof(server_addr));// 等待接收服务器的响应memset(buffer, 0, sizeof(buffer));recvfrom(sockfd, buffer, sizeof(buffer), 0, NULL, NULL);// 打印服务器的响应printf("Server response: %s\n", buffer);// 关闭套接字close(sockfd);return 0;
}

http://www.yayakq.cn/news/588038/

相关文章:

  • 静态网站制作模板餐饮业网站建设招标书
  • 网站申请备案流程wordpress保存的字体
  • 一个公司网站备案免费咨询合同范本
  • 孝感织云网站建设app做好了网站怎么做
  • 钓鱼网站下载安装自己做博客网站和百家号的区别
  • 芜湖手机网站开发交易网站模板
  • 怎么查询网站建设时间wordpress 回复楼层
  • 建设销售网站的好处网站运作方式
  • 想建立一个网站郑州 外包网站
  • 长兴县网站建设旅游网站建设策划
  • 做专业网站网站图表怎么做的
  • 广西建设工程质量安全监督网站个人能做网站吗
  • 昆明网站词排名优化科技网站设计资讯
  • 上海 网站平台开发一般网站的流量是多少
  • 北京外包网站学网络工程师
  • 单页网站制作软件如何搭建网站服务器
  • 网站维护源码电商平台证明怎么开
  • 网站建设互联网加济南优化网站
  • 漯河做网站推广大安市网站
  • 萍乡的电子商务网站建设公司网站安装系统怎么安装教程视频
  • 重庆南岸营销型网站建设价格做企业网站 需要用服务器吗
  • 上海房地产网站建设ctcms做的比较好的网站
  • 做电影网站哪个系统好百度网址链接是多少
  • 江苏建设网站首页行业门户网站 建站
  • 系部网站建设需求分析python 做网站模块
  • 国外网站配色百度应用
  • 服务网站建设方案wordpress 初始化
  • 手机网站制作哪家公司好视频分享网站建设难吗
  • 微信广告平台推广广州seo招聘信息
  • 微信公众网站开发做网站编辑心得