5.9UDP客户端服务器-基于OK6410

  1. 实验4-3:UDP客户端服务器

  • 实验目的:

熟悉UDP客户端服务器编程

?

  • 实验要求:

1、实现UDP客户端服务器回显程序

2、传输信息要求如下

(1)尝试用C语言结构去发送或接收一个信息包

(2)将服务器运行于开发板,客服端运行于ubuntu 12.04,抓包分析UDP协议

?

  • 实验步骤:

    • 服务端的程序:

      #include <stdio.h>

      #include <stdlib.h>

      #include <string.h>

      #include <unistd.h>

      #include <sys/types.h>

      #include <sys/socket.h>

      #include <netinet/in.h>

      #include <arpa/inet.h>

      ?

      #define PORT 1234

      #define BACKLOG 1

      ?

      int main()

      {

      int listenfd, connectfd;

      struct sockaddr_in server;

      struct sockaddr_in client;

      socklen_t addrlen;

      if((listenfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)

      {

      perror("Creating socket failed.");

      exit(1);

      }

      int opt =SO_REUSEADDR;

      setsockopt(listenfd,SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt));

      bzero(&server,sizeof(server));

      server.sin_family=AF_INET;

      server.sin_port=htons(PORT);

      server.sin_addr.s_addr= htonl (INADDR_ANY);

      if(bind(listenfd, (struct sockaddr *)&server, sizeof(server)) == -1) {

      perror("Binderror.");

      exit(1);

      }

      if(listen(listenfd,BACKLOG)== -1){ /* calls listen() */

      perror("listen()error\n");

      exit(1);

      }

      addrlen =sizeof(client);

      if((connectfd = accept(listenfd,(struct sockaddr*)&client,&addrlen))==-1) {

      perror("accept()error\n");

      exit(1);

      }

      printf("Yougot a connection from cient‘s ip is %s, prot is %d\n",inet_ntoa(client.sin_addr),htons(client.sin_port));

      send(connectfd,"Welcometo my server.\n",22,0);

      close(connectfd);

      close(listenfd);

      return 0;

      }

    ?

?

????2、在客户端传送信息,并接收回显结果

?

#include<stdio.h>

#include <stdlib.h>

#include<unistd.h>

#include<string.h>

#include<sys/types.h>

#include<sys/socket.h>

#include<netinet/in.h>

#include<netdb.h>

?

#define PORT 1234

#define MAXDATASIZE 100

?

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

{

int sockfd, num;

char buf[MAXDATASIZE];

struct hostent *he;

struct sockaddr_in server;

if (argc!=2) {

printf("Usage:%s <IP Address>\n",argv[0]);

exit(1);

}

if((he=gethostbyname(argv[1]))==NULL){

printf("gethostbyname()error\n");

exit(1);

}

if((sockfd=socket(AF_INET, SOCK_STREAM, 0))==-1){

printf("socket()error\n");

exit(1);

}

bzero(&server,sizeof(server));

server.sin_family= AF_INET;

server.sin_port = htons(PORT);

server.sin_addr =*((struct in_addr *)he->h_addr);

if(connect(sockfd,(struct sockaddr *)&server,sizeof(server))==-1){

printf("connect()error\n");

exit(1);

}

if((num=recv(sockfd,buf,MAXDATASIZE,0)) == -1){

printf("recv() error\n");

exit(1);

}

buf[num-1]=‘\0‘;

printf("Server Message: %s\n",buf);

close(sockfd);

return 0;

}

3、在服务器接收客服端信息,显示并回显

?


????4、交叉编译服务器,并通过NFS共享拷贝到开发板运行



?

5、编译客服端,直接在ubuntu 12.04上运行


?

6、测试客户端与服务器能正常通过UDP传输信息

?

实验心得:

????UDP是一种基于无连接的通信方式,该实验里,实现了一个服务器端:开发板,和一个客户端pc主机。两者进行信息的交流。上面是我的实现的截图。整个过程很是顺利。谢谢。

时间: 2024-08-06 11:59:30

5.9UDP客户端服务器-基于OK6410的相关文章

搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 (1)

搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 原文地址(英文):http://www.networkcomms.net/creating-a-wpf-chat-client-server-application/ 注意:本教程是相当广泛的,如果你是在短请也看到我们的东西 开始和 如何在几分钟内创建一个客户端服务器应用程序教程. 注2:本例中包括,明显延长进一步证明功能,在包中包含的示例 包下载. 在我们开始之前确保您已经安装了Vis

服务器基于PHP CodeIgniter,Android基于Volley实现多文件/图片上传(含服务器,web版和android客户端完整代码)

问题背景:app在上传图片时,同时传递参数,支持传递多个图片.本文中的环境默认已经配好了服务器的CodeIgniter框架.事实上不使用这个框架也是可以的. 一,服务器部分 1,在controllers下的helpers新建文件upload_helper.php <?php /** * Make multifile array input complaint with CI_Upload.<br> * For use files[ ] input name you must use it

系统架构师-基础到企业应用架构-客户端/服务器

开篇 上篇,我们介绍了,单机软件的架构,其实不管什么软件系统,都是为了解决实际中的一些问题,软件上为了更好的解决实际的问题才会产生,那么对于单机软 件的架构则也是在不断的变化和发展,当然好的软件架构会对软件的生命周期起到决定的作用.好的软件架构,无疑会延长单机软件的生命周期,同时适应后期的不断的衍生的需求变化,.NET FrameWork的架构设计和体系结构设计,我相信是非常优秀的. 本篇,将会讲述大家比较常见的架构模式,客户端-服务器的模式,可以理解成C/S架构模式.现在的C/S架构已经从原来

支持并发的http客户端(基于tcp连接池以及netty)

闲来无事,将以前自己写的一个库放出来吧.. 有的时候会有这样子的需求: (1)服务器A通过HTTP协议来访问服务器B (2)服务器A可能会并发的像B发送很多HTTP请求 类似于上述的需求,可能并不常见...因为在业务中确实遇到了这样子的场景,所以就自己动手开发了一个库... 实现原理: (1)底层IO通过netty搞 (2)维护一个tcp的长连接池,这样子就不用每次发送请求还要建立一个tcp连接了... 下面直接来看怎么用吧: (1)最常规的用法,向www.baidu.com发送100次get请

【读书笔记】iOS-使用Web Service-基于客户端服务器结构的网络通信(一)

Web Service技术是一种通过Web协议提供服务,保证不同平台的应用服务可以互操作,为客户端程序提供不同的服务. 目前3种主流的Web Service实现方案用:REST,SOAP和XML-RPC.XML-RPC和SOAP都是比较复杂的技术,XML-PRC是SOAP的前身. 一,REST Web Service. REST被翻译为“表征状态转移”,听起来很抽象,“表征”是客户端看到的页面,页面的跳转就是状态的转移,客户端通过请求URL获得要显示的页面.REST通常是基于HTTP,URI和X

5.10TCP客户端服务器

实验4-4:TCP客户端服务器 实验目的: 熟悉TCP客户端服务器编程 ? 实验要求: 1.实现TCP客户端服务器回显程序 2.传输信息要求如下 (1)尝试用C语言结构去发送或接收一个信息包 (2)将服务器运行于开发板,客服端运行于ubuntu 12.04,抓包分析TCP协议 ? 实验步骤: 1.服务器端 #include <stdlib.h>? #include <stdio.h>? #include <errno.h>? #include <string.h&

多人在线游戏,客户端服务器间同步低延迟方案(译)

原文:https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking 输入预测 假设玩家的网络延迟为150毫秒,并开始向前移动.该按键命令发送到服务器.用户命令被处理,并且玩家的角色在游戏世界中向前移动.这个状态更改将通过下一次快照更新传输到所有客户端.所以玩家在开始走路之后,会在150毫秒的延迟时间后看到自己的动作变化.这种延迟存在于所有玩家的行动,如运动,射击武器等,并且随着更高的延迟而变得更糟.玩家输入和相应的视

Socket编程(简易聊天室客户端/服务器编写、CocoaAsyncSocket)

Socket编程(简易聊天室客户端/服务器编写.CocoaAsyncSocket) 一.Socket 1.1 Socket简介 Socket就是为网络服务提供的一种机制.网络通信其实就是Socket间的通信,通信的两端都是Socket,数据在两个Socket间通过IO传输. 在Web服务大行其道的今天,调用Web服务的代价是高昂的,尤其是仅仅是抓取少量数据的时候尤其如此.而使用Socket,可以只传送数据本身而不用进行XML封装,大大降低数据传输的开销.Socket允许使用长连接,允许应用程序运

可以创建专业的客户端/服务器视频会议应用程序的音频和视频控件LEADTOOLS Video Conferencing SDK

LEADTOOLS Video Streaming Module控件为您创建一个自定义的视频会议应用程序和工具提供所有需要的功能.软件开发人员可以使用Video Streaming Module SDK,通过一些不同的配置来创建一些客户端/服务器应用程序.例如,如果有一个服务器需要向多个客户端发送音频/视频数据,那么就可以在服务器上创建这样的应用程序,比如多点传送或Web广播中的web多点传播.此外,当有多个捕捉点向一个源发送视频数据时,您可以创建安全/监控应用程序. 产品特征: 视频会议二进制