分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

network ?programming-简单的UDP客户/服务器模式

发布时间:2023-09-06 01:44责任编辑:熊小新关键词:暂无标签

  无连接通信是通过UDP(User Datagram Protocol)/IP(Internet Protocol)协议来完成的,它不能确保可靠的数据传输,但能将数据发送到多个目标,或者接收多个源数据。相较于TCP等连接通信,无连接通信只要服务端先用socket()创建套接字,然后通过bind()绑定指定端口,不必调用listen()、accept(),只需要等待数据即可。

  UDP使用场景:1.网络数据大多是短消息;2.拥有大量的client;3.对数据安全性无特殊要求(当报文发送之后,是无法得知其是否安全完整到达的);4.网络负担非常重,但对响应速度要求高。应用在比如:网络视频会议系统的C/S网络应用。

客户端程序流程

step1 初始化Socket库

step2 创建套接字

SOCKET sClient = socket(AF_INET, SOCK_DGRAM, 0);

step3 填写服务器地址

sockaddr_in server;

memset(&server, 0, sizeof(sockaddr_in));

server.sin_family = AF_INET;

server.sin_addr.s_addr = inet_addr(argv[1]);

server.sin_port = htons((u_short)atoi(argv[2]));

step4 与服务器通信(数据通讯),进行信息处理

(发送数据)

char buff[512] = {0};

strcpy(buff, "I am client");

int nRet = sendto(sClient, buff, strlen(buff)+1, 0, (struct sockaddr*)&server, sizeof(server));

(接收数据)

char buff[512];

int nAddrLen = sizeof(server);

memset(buff, 0, sizeof(buff));

nRet = recvfrom(sClient, buff, sizeof(buff), 0, (struct sockaddr*)&server, &nAddrLen);

step5 通信结束后关闭套接字

step6 卸载Socket库

服务器端程序流程

step1 初始化Socket库

step2 创建套接字

SOCKET sListen= socket(AF_INET,SOCK_DGRAM,0)

step3 创建本地实体,填写本机地址信息

sockaddr_in local;

memset(&local, 0, sizeof(local));

local.sin_family = AF_INET;

local.sin_addr.s_addr = INADDR_ANY;

local.sin_port = htons((u_short)8888);

step4  绑定一个固定的端口

bind(sListen, (struct sockaddr *)&local, sizeof(local));

step5 接收客户端的数据报,进行处理与通信

接收数据

struct sockaddr_in from;

memset(&from, 0, sizeof(from));

int fromLen = sizeof(from);

char buff[512] = {0};

recvfrom(sListen,buff, sizeof(buff), 0, (struct sockaddr*)&from, &fromLen);

发送数据

char buff[512] = {0};

strcpy(buff, "I am server");

sendto(sListen, buff, strlen(buff+1), 0, (struct sockaddr*)&from, fromLen);

step6 通信结束后关闭套接字

closesocket(sListen);

step7 卸载Socket库

 

  

network ?programming-简单的UDP客户/服务器模式

原文地址:https://www.cnblogs.com/BlueBlue-Sky/p/8502631.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved