[国嵌攻略][092][UDP网络程序设计]
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网络程序设计]的更多相关文章
- [国嵌攻略][091][TCP网络程序设计]
server.c #include <sys/socket.h> #include <netinet/in.h> #include <strings.h> #inc ...
- [国嵌攻略][090][linux网络编程模型]
编程模型 Socket的实质就是一个接口,利用该接口,用户在使用不同的网络协议时,操作函数得以统一.而针对不同协议的差异性操作,则交给了Socket去自行解决. TCP编程模型 UDP编程模型
- [国嵌攻略][068][tftp网络协议实现]
IP协议结构 UDP协议结构 TFTP协议结构 TFTP端口 读写请求端口: 69 其他请求端口:1024~65535 主程序 /*********************************** ...
- [国嵌攻略][119][Linux中断处理程序设计]
裸机中断: 1.中断统一入口. 2.注册中断处理程序. 3.根据中断源编号,调用中断处理程序. Linux中断 1.在entry-armv.S中的_irq_svc是中断统一入口. 2.获取产生中断源的 ...
- [国嵌攻略][117][LED驱动程序设计]
LED程序设计 1.编写内核模块 2.搭建字符驱动框架 3.实现设备方法 头文件 <linux/io.h> writel() 1.编译/安装驱动 make cp leddev.ko ... ...
- [国嵌攻略][065][DM9000驱动程序设计]
移植代码:通过已有的可用的代码修改到新环境下运行. 代码编写: 初始化网卡 1.选中网卡 nLAN_CS BWSCON(0x48000000) DW4:01 16bit BANKCON4(0x4800 ...
- [国嵌攻略][164][USB驱动程序设计]
USB驱动模型 1.USB host controller driver(主控器驱动):为USB主控制器提供驱动程序 2.USB core(USB核心):连接USB主控制器驱动和USB设备驱动 3.U ...
- [国嵌攻略][160][SPI驱动程序设计]
SPI Flash驱动 1.打开/drivers/mtd/devices/m25p80.c驱动文件.找到初始化m25p80_init函数,其中通过spi_register_driver来注册spi设备 ...
- [国嵌攻略][151][nandflash驱动程序设计]
初始化 打开/drivers/mtd/nand/s3c2410.c找到nand flash驱动程序代码,找到模块初始化函数s3c_nand_init,找到platform_driver中的probe函 ...
随机推荐
- mysql 计算生日
生日(DATE) 计算方法1: YEAR(CURDATE())-YEAR(birthday)-(RIGHT(CURDATE(),5)<RIGHT(birthday,5)) 计算方法2: year ...
- MySQL Replication 主从复制全方位解决方案
1.1 主从复制基础概念 在了解主从复制之前必须要了解的就是数据库的二进制日志(binlog),主从复制架构大多基于二进制日志进行,二进制日志相关信息参考:http://www.cnblogs.com ...
- java获取properties配置文件值
package me.ilt.Blog.util; import java.io.File; import java.io.FileInputStream; import java.io.IOExce ...
- Java <clinit> & <init>
在编译生成class文件时,会自动产生两个方法,一个是类的初始化方法<clinit>, 另一个是实例的初始化方法<init>. <clinit>:在jvm第 ...
- Jmeter非GUI模式运行
非GUI模式,即命令行模式,运行 JMeter 测试脚本能够大大缩减所需要的系统资源. 使用的命令: jmeter -n -t 脚本文件路径 -l 结果输出文件路径 -j 日志文 ...
- Java版本APP接口安全设计
Java版本APP接口安全设计 安全设计分为两种: 1.传输安全. 2. 会话安全. 1.传输安全 怎么保证接口经过网络传输不被抓包获取? 1.如果只是使用对称性算法,破解APP拿到加密密钥就可以解密 ...
- SCOI 2010 序列操作
题目描述 lxhgww最近收到了一个01序列,序列里面包含了n个数,这些数要么是0,要么是1,现在对于这个序列有五种变换操作和询问操作: 0 a b 把[a, b]区间内的所有数全变成0 1 a b ...
- Windows上Python2与Python3共存
首先安装好python2与python3版本 因为安装顺序的不同,所以系统默认的版本也不同.如果先安装的是python,那么系统默认的就是python2 如果根据需求需要使用不同的版本,可以使用py命 ...
- Django学习日记02_项目环境
创建一个工程: django-admin.py startproject mySite 将会产生以下文件: mySite/ manage.py mySite/ __init_ ...
- 物流包裹一站式查询(TrackingMore)
快递查询接口 目前提供快递查询的接口平台有: Trackingmore 快递100 快递网 不同接口的区别: (1)Trackingmore支持380家快递公司,其中有55家为国内的快递,其余325家 ...