server.c

#include <sys/socket.h>
#include <netinet/in.h>
#include <strings.h>
#include <stdio.h> #define SERVER_PORT 3333 void main(){
//创建标识
int serverfd; serverfd = socket(AF_INET, SOCK_DGRAM, ); //建立UDP连接 //绑定地址
struct sockaddr_in serverAddr; serverAddr.sin_family = AF_INET; //设置协议
serverAddr.sin_port = htons(SERVER_PORT); //设置端口
serverAddr.sin_addr.s_addr = htonl(INADDR_ANY); //设置地址
bzero(serverAddr.sin_zero, ); //设置为零 bind(serverfd, (struct sockaddr *)&serverAddr, sizeof(struct sockaddr)); //接收数据
char buffer[];
struct sockaddr_in clientAddr;
socklen_t clientAddrLen; clientAddrLen = sizeof(struct sockaddr);
recvfrom(serverfd, buffer, sizeof(buffer), , (struct sockaddr *)&clientAddr, &clientAddrLen); //显示数据
char *clientIPAddr; clientIPAddr = (char *)inet_ntoa(clientAddr.sin_addr.s_addr);
printf("server recvice from %s:\n%s", clientIPAddr, buffer); //关闭连接
close(serverfd);
}

client.c

#include <sys/socket.h>
#include <netinet/in.h>
#include <strings.h>
#include <stdio.h> #define SERVER_PORT 3333 int main(int argc, char **argv){
//参数检查
if(argc != ){
printf("Usage:\n\t%s <ip address>\n", argv[]);
return -;
} //创建标识
int clientfd; clientfd = socket(AF_INET, SOCK_DGRAM, ); //建立UDP连接 //输入数据
char buffer[]; printf("client send to %s:\n", argv[]);
fgets(buffer, sizeof(buffer), stdin); //发送数据
struct sockaddr_in serverAddr; serverAddr.sin_family = AF_INET; //设置协议
serverAddr.sin_port = htons(SERVER_PORT); //设置端口
serverAddr.sin_addr.s_addr = inet_addr(argv[]); //设置地址
bzero(serverAddr.sin_zero, ); //设置为零 sendto(clientfd, buffer, sizeof(buffer), , (struct sockaddr *)&serverAddr, sizeof(struct sockaddr)); //关闭连接
close(clientfd); return ;
}

[国嵌攻略][092][UDP网络程序设计]的更多相关文章

  1. [国嵌攻略][091][TCP网络程序设计]

    server.c #include <sys/socket.h> #include <netinet/in.h> #include <strings.h> #inc ...

  2. [国嵌攻略][090][linux网络编程模型]

    编程模型 Socket的实质就是一个接口,利用该接口,用户在使用不同的网络协议时,操作函数得以统一.而针对不同协议的差异性操作,则交给了Socket去自行解决. TCP编程模型 UDP编程模型

  3. [国嵌攻略][068][tftp网络协议实现]

    IP协议结构 UDP协议结构 TFTP协议结构 TFTP端口 读写请求端口: 69 其他请求端口:1024~65535 主程序 /*********************************** ...

  4. [国嵌攻略][119][Linux中断处理程序设计]

    裸机中断: 1.中断统一入口. 2.注册中断处理程序. 3.根据中断源编号,调用中断处理程序. Linux中断 1.在entry-armv.S中的_irq_svc是中断统一入口. 2.获取产生中断源的 ...

  5. [国嵌攻略][117][LED驱动程序设计]

    LED程序设计 1.编写内核模块 2.搭建字符驱动框架 3.实现设备方法 头文件 <linux/io.h> writel() 1.编译/安装驱动 make cp leddev.ko ... ...

  6. [国嵌攻略][065][DM9000驱动程序设计]

    移植代码:通过已有的可用的代码修改到新环境下运行. 代码编写: 初始化网卡 1.选中网卡 nLAN_CS BWSCON(0x48000000) DW4:01 16bit BANKCON4(0x4800 ...

  7. [国嵌攻略][164][USB驱动程序设计]

    USB驱动模型 1.USB host controller driver(主控器驱动):为USB主控制器提供驱动程序 2.USB core(USB核心):连接USB主控制器驱动和USB设备驱动 3.U ...

  8. [国嵌攻略][160][SPI驱动程序设计]

    SPI Flash驱动 1.打开/drivers/mtd/devices/m25p80.c驱动文件.找到初始化m25p80_init函数,其中通过spi_register_driver来注册spi设备 ...

  9. [国嵌攻略][151][nandflash驱动程序设计]

    初始化 打开/drivers/mtd/nand/s3c2410.c找到nand flash驱动程序代码,找到模块初始化函数s3c_nand_init,找到platform_driver中的probe函 ...

随机推荐

  1. SharedPreferences 存List集合,模拟数据库,随时存取

    PS:SharedPreferences只要稍微学过一点就会用,他本身通过创建一个Editor对象,来存储提交,而editor可以存的格式为 他里面可以存一个Set<String> Set ...

  2. Create 命令详解

    mkdir:创建一个目录 /mkdir a b c :创建同级目录 /mkdir -p aa/bb/cc: 递归创建目录touch:修改文件时间戳,或者新建一个不存在的文件 /-a 更改存取时间 /m ...

  3. springBoot系列教程01:elasticsearch的集成及使用

    1.首先安装elasticsearch 集群环境,参考 http://www.cnblogs.com/xiaochangwei/p/8033773.html 注意:由于我的代码采用的是springbo ...

  4. Android 执行 adb shell 命令

    Android 执行Adb shell 命令大多需要root权限,Android自带的Runtime. getRuntime().exec()容易出错,在网上找到了一个执行adb shell命令的类 ...

  5. Django学习日记05_模板_模板语言

    Variables 在模板中,使用两个大括号包含变量的方式来使用变量: {{ name }} 该变量应该作为键值对中的键,在Context中能被查找到. Tags 模板中使用Tags来进行简单的逻辑: ...

  6. 通过WebSocket实现一个简单的聊天室功能

    WebSocket WebSocket是一个协议,它是是基于TCP的一种新的网络协议,TCP协议是一种持续性的协议,和HTTP不同的是,它可以在服务器端主动向客户端推送消息.通过这个协议,可以在建立一 ...

  7. jQuery Ajax 操作函数 (七)

    函数 描述 jQuery.ajax() 执行异步 HTTP (Ajax) 请求. .ajaxComplete() 当 Ajax 请求完成时注册要调用的处理程序.这是一个 Ajax 事件. .ajaxE ...

  8. thinkphp->add方法错误

    $group_id=$model->add($add); 以上这句代码如果执行成功,返回它存储的id,但是,会有一种情况一直返回1. 代码完全没有问题,检查数据库发现有两个主键id,删除一个就O ...

  9. 【转】 Git——如何将本地项目提交至远程仓库

    1.(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库 git init 2.把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点 ...

  10. ACSA Associate -- 01 Introduction To The Course

    1. 为什么要学习AWS认证? 2. AWS认证的考试是如何组织的? 3. 你需要做些什么? 4. 关于ACSA和ACSA BETA的信息 5. 其他链接 15 Top Paying IT Certi ...