UDP 协议通信服务器端客户端

UDP 协议进行通信

——服务器端

UDP程序实例的基本使用情况和使用方法

这个系统由服务器程序udps和客户及程序udpc两个程序组成,如果从客户机出入一个特定命令,并将这个命令发送到udps中去处理,其执行结果将在客户机的屏幕上显示出来。

1、在执行程序的时候,首先启动一个服务器程序。

端口号是该服务器程序所指定的一个接收包的端口号,客户机必须向该处发送包。在执行上述程序后则执行下面的客户机程序

2、“服务器的IP”也可以使用服务器的主机名或域名。

若两个程序在一台电脑上则服务器IP用127.0.0.1;若不在一台电脑上则服务器的IP用其所在电脑的IP(要求两台电脑能Ping通)。客户端输入的端口号必须是服务器指定的端口。

客户机方可以输入C:\\Windows\\System32\\下可执行的命令

如:help、arp、route print、quit等

从键盘上输入的字符原封不动的发送给服务器程序后,在服务器程序中则执行该字符串相对应的命令,并将执行结果发送给客户机程序。

程序的执行实例和流程图

在这个实例中服务器的IP为白兰兰的IP(125.219.181.97)

在客户机端输入route print命令,则显示服务器的路由寻址表如下(不全)

服务器端的信息

如果输入help后没有任何反应,请确认udpc程序所指定的IP地址是否正确。若正确,再确认一下该IP地址的主机udps是否启动;再确认这些以后,如果执行udpc程序仍没有任何显示,那么请使用ping命令来检查通信是否能够进行,因为UDP协议属于无连接型通信,所以即使发生错误,也很难知道。

如果输入的命令一直是正确的,则只显示第一个命令,其余的都隐藏了。直到输入错误时,服务器端才有错误提示,如:

处理流程

无论是服务器端还是和客户端,首先都要初始化套接口环境再创建一个套接口,利用bind()系统调用来绑定端口号和IP,只有这样才能使用UDP协议发送和接收一个包,但时至次计算机网络中还没有传输任何一个包。

对于客户机而言,如果从键盘上输入命令,在客户机上执行sendto()系统调用,向服务器发送包,那么在发送包之后,客户机则执行recvfrom()系统调用,等待从服务器返回的报文。

如果服务器收到从客户机发来的报文,则调用execute()和chulicom()函数。实质是调用C:\\Windows\\System32\\中的可执行程序。若存在该命令则给予客户机响应,若不存在输出 :您输入错误的命令。若命令不完整,服务器给出提示。

这些操作反复进行,如果在客户机上输入字符串quit,则程序运行结束。

在使用UDP协议时,即使客户机程序运行结束,也不讲这个事实传递给服务器。UDP协议进行的通信的基本模式,只是传递命令的请求包和应答包,并不传输其他包,因此通信方式简单。

客户机的处理 服务器的处理

客户机循环,从键

盘上输入,当不是

EOF的时候反复进行服务器循环接收报文

Recvfrom()

服务器循环

客户机循环

4、UDP服务器源程序及说明

#include

#include

#include

#include

#pragma comment (lib, "ws2_32.lib")

#define BUFSIZE 65500

enum{CMD_NAME,DST_PORT};

int execute(char * command, char *buf,int bufmax);

void chulicom(char *buff ,char *send_buf);

void main(int argc,char *argv[]){

struct sockaddr_in server;

struct sockaddr_in client;

char recv_buf[BUFSIZE];

char send_buf[BUFSIZE];

int resize;

memset(recv_buf,0,sizeof(recv_buf));

memset(send_buf,0,sizeof(send_buf));

char if_;

SOCKET sk;

int serverport=12345;

if (argc==1) /

udp协议服务器客户端流程图,UDP 协议通信服务器端客户端.doc相关推荐

  1. api网关配置协议服务器,api网关配置协议服务器

    api网关配置协议服务器 内容精选 换一换 VPC通道主要用于将部署在VPC内的服务通过API网关开放给外部访问,它的优势在于使用VPC的内部子网通信,网络时延更低,同时VPC通道具有负载均衡功能,从 ...

  2. http协议 服务器主动下发,HTTP协议快速入门指南

    看完下面的文章,回答这几个问题 常用的HTTP方法有哪些 GET方法与POST方法的区别 HTTP请求报文与响应报文格式 常见的HTTP相应状态码 HTTP1.1版本新特性 常见HTTP首部字段 HT ...

  3. ws协议 服务器,Node.js WebSocket 协议

    WebSocket websocket 是 HTML5 标准的一个新的 网络协议.它是基于 HTTP 协议之上的扩展,是一种可以双向通信的协议. 传统的 HTTP 协议 通信,服务端是不能主动发信息给 ...

  4. onvif协议服务器端口,通过onvif协议接入海康、大华NVR步骤

    <通过onvif协议接入海康.大华NVR步骤>由会员分享,可在线阅读,更多相关<通过onvif协议接入海康.大华NVR步骤(4页珍藏版)>请在人人文库网上搜索. 1.通过onv ...

  5. 视频国标协议服务器,国标GB28181流媒体协议客户端EasyGBS视频平台权限功能的实现...

    原标题:国标GB28181流媒体协议客户端EasyGBS视频平台权限功能的实现 大家知道TSINGSEE青犀视频全线产品更新过后,都有了管理员和非管理员登陆的区别,管理员拥有最高权限,可对服务器进行配 ...

  6. gprs tcp 协议 汽车 服务器,基于GPRS的车辆检测通信系统设计毕业论文.doc

    本科毕业论文 专 业: 通信工程 论文题目:基于GPRS车辆检测通信系统设计 毕业论文(设计)原创性声明 本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果.据我所知,除文中 ...

  7. opc协议 服务器,使用OPC UA协议在python中进行服务器端客户端编程

    你想要完成什么?结构是相当重要的问题,因为你可以摆脱它. Onces它的安装运行的服务器并检查它witth他的命令行 opcua-client 这个GUI可能会帮助很多见的服务器的结构. opcua服 ...

  8. 扣扣邮箱的协议服务器地址,使用SMTP协议,通过QQ邮箱发送邮件

    发送邮件的服务器选择QQ邮箱,服务器地址为:smtp.qq.com,端口为25 package com.mail; import java.util.Date; import java.util.Pr ...

  9. internet协议服务器在哪,网络协议在哪设置

    互联网是对全世界都开放的网络,任何单位或个人都可以在网上方便地传输和获取各种信息,互联网这种具有开放性.共享性.国际性的特点就对计算机网络安全提出了挑战.网络协议在哪设置?计算机网络安全有哪些基本注意 ...

最新文章

  1. NanoPi NEO Air使用七:获取并编译U-boot和Linux的源码
  2. 大数据WEB阶段(十八)数据库事务
  3. python模块补充
  4. java kiwi_[转] Java 8 开发的 4 大顶级技巧
  5. 数据库: asc和desc的意思
  6. 【Shell Basic】source . 与 bash sh 的区别
  7. allegro使用经验
  8. matlab里线性规划,Matlab 中的数学建模算法 —— 线性规划函数
  9. 【POJ】Radar Installation题解
  10. POI实现Excel文件加密
  11. 将若干字符串按照字母顺序输出
  12. win10实时防护彻底关掉
  13. 中兴笔试题目总结(四)软件工程部分
  14. 过来人都是怎么学习stm32的
  15. 五大定律助你公司走向成功-民兴商学院
  16. Google 地图- 基本地图类型
  17. 【Nutz】Nutz起步
  18. 流水车间调度问题混合整数规划模型
  19. 华硕天选3和神舟战神Z8那个好?
  20. 在android应用中植入Admob广告赚钱

热门文章

  1. axios 注册拦截器 cdn引用_CDN加速原理
  2. r420 raid linux,Dell R420 RAID建立以及系统安装
  3. java验证码制作思路_Java实现验证码制作之一自己动手
  4. linux用pe大小做逻辑卷,Linux常用命令之--逻辑卷
  5. python如何实现小车行走_[详细推导]基于EKF的小车运动模型的python编程实现
  6. Swagger2 最全注解说明(转载)
  7. 基于JAVA+SpringMVC+MYSQL的进销存ERP系统
  8. java 注解 对象_Java基础-学习使用Annotation注解对象
  9. 剑指offer:矩阵中的路径(递归回溯法DFS类似迷宫)
  10. Spring boot 连接Redis实现HMSET操作