新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > ARM7单片机+RTL8019嵌入式TCP_IP协议栈使用分析

ARM7单片机+RTL8019嵌入式TCP_IP协议栈使用分析

作者:时间:2012-12-05来源:网络收藏

WEB服务器程序清单
/*****************************************************
* 名称:TCP_TEST()
* 功能:设置TCP模块
* 入口:无
* 出口: 无
*********************************************************/

void TCP_SETUP(void)
{
/*设置本地TCP服备器的IP地址*/
TCP_serveraddr.sin_family = 0;
TCP_serveraddr.sin_addr[0] = MY_IP_ADD[0];
TCP_serveraddr.sin_addr[1] = MY_IP_ADD[1];
TCP_serveraddr.sin_addr[2] = MY_IP_ADD[2];
TCP_serveraddr.sin_addr[3] = MY_IP_ADD[3];
TCP_serveraddr.sin_port = 80;
/*将TCP server的IP地址与SOCKET绑定*/
t = socket(0,0,TCP_PROTOCOL);
iii=bind(t,TCP_serveraddr,sizeof(TCP_serveraddr));
iii=listen(t,4);

}
/********************************************************
* 名称:TCP_TEST()
* 功能:TCP打开网页测试
* 入口:无
* 出口: 无
********************/
void TCP_TEST(void)
{
temp = accept(t,TCP_clientaddr,iii);/*accept网页获取请求*/

if(temp != 0xffff)
{ templen = recv(temp,TCP_rec_buff,1024,0);
if(TCP_rec_buff[5] == ' ')
{ send(temp,httpweb,169,0); /*发送http网页*/
send(temp,web,395,0);

}
else if(TCP_rec_buff[5] == '1')
{
send(temp,httpgif,169,0); /*发送GIF,BMP图片背景*/
send(temp,bmp,442,0);
}
close(temp);
}
}

2)简单UDP服务器—通过函数UDP_TEST()完成设置本地UDP服备器的IP地址和远端口服务器的IP地址, 其过程如下:
1.调用SOCKET API函数socket(0,0,TCP_PROTOCOL)分配一个SOCKET
2.调用SOCKET API函数bind()将UDP server的IP地址与SOCKET绑定,将调用SOCKET API函数enable_a_port_listen(1025)起动监听。
3.函数UDP_TEST()通过函数recfrom()接收UDP数据报,接收到的UDP数据报调用SOCKET API函数sendto()回传远程服务器。
UDP服务器程序清单

* 名称:UDP_SETUP()
* 功能:设置UDP模块
* 入口:无
* 出口: 无
***********************************************************/
void UDP_SETUP(void)
{
serveraddr.sin_family = 0; /*设置远端服务器的IP地址*/
serveraddr.sin_addr[0] = 192;
serveraddr.sin_addr[1] = 168;
serveraddr.sin_addr[2] = 0;
serveraddr.sin_addr[3] = 1;
serveraddr.sin_port = 1026;
s = socket(0,0,UDP_PROTOCOL);
clientaddr.sin_family = 0; /*设置本地UDP客户端的IP地址*/
clientaddr.sin_addr[0] = MY_IP_ADD[0];
clientaddr.sin_addr[1] = MY_IP_ADD[1];
clientaddr.sin_addr[2] = MY_IP_ADD[2];
clientaddr.sin_addr[3] = MY_IP_ADD[3];
clientaddr.sin_port = 1025;
/*将本地IP地址与SOCKET绑定*/
iii=bind(s,clientaddr,sizeof(clientaddr));
enable_a_port_listen(1025);
}

/************************************************************
* 名称:UDP_TEST()
* 功能:UCP数据报收发测试
* 入口:无
* 出口: 无
*************************************************************/
void UDP_TEST(void)
{
/*接收UDP数据报*/
len = recvfrom(s,rec_buff,400,0,serveraddr,iii);
if(len > 0)
{ /*将接收到的UDP数据报发送回服务器端*/
sendto(s,rec_buff,len,0,serveraddr,iii);
}
}

单片机相关文章:单片机教程


单片机相关文章:单片机视频教程


单片机相关文章:单片机工作原理


tcp/ip相关文章:tcp/ip是什么



上一页 1 2 下一页

关键词: ARM7 RTL8019 协议栈

评论


相关推荐

技术专区

关闭