社区
驱动开发/核心开发
帖子详情
lwip 的UDP 服务端怎么建立的啊?
zynh1020
2010-11-05 08:56:38
有没有哪位搞过LWIP的,UDP服务器端口是怎么建立的啊?最好给个源代码啊?
非常感谢呢
...全文
772
6
打赏
收藏
lwip 的UDP 服务端怎么建立的啊?
有没有哪位搞过LWIP的,UDP服务器端口是怎么建立的啊?最好给个源代码啊? 非常感谢呢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hb_haitao2009
2011-10-21
打赏
举报
回复
#define HostIP "192.168.100.120"
void app_tcp_client_thread(void *pvar)
{
static rt_tick_t net_off_timer;
struct hostent *host;
int sock, err,len;//,optval;
fd_set r_fd,w_fd;
struct sockaddr_in server_addr;
struct timeval timeout;
char recv_buf[100];
timeout.tv_sec = 0;
timeout.tv_usec = 50000;
for (;;)
{
while(1)
{
rt_thread_delay(RT_TICK_PER_SECOND*2);
host = gethostbyname(HostIP);
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(6001);
server_addr.sin_addr = *((struct in_addr *)host->h_addr);
rt_memset(&(server_addr.sin_zero), 0, sizeof(server_addr.sin_zero));
sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock == -1)
{
rt_kprintf("tcp_client_test: create socket fail!\r\n");
if (net_off_timer == 0)
net_off_timer = rt_tick_get();
if (rt_tick_get() - net_off_timer > 30000/10)
{
net_off_timer = 0;
lwip_close(sock);
rt_kprintf("tcp_client_test: reset socket!\r\n");
break;
}
gnet_conn = 0;
continue;
}
conn:
rt_thread_delay(RT_TICK_PER_SECOND * 30);
err = connect(sock, (struct sockaddr *)&server_addr, sizeof(struct sockaddr));
if (err == 0)
{
rt_kprintf("tcp_client_test: connect ok!\r\n");
gnet_conn = 1;
break;
}
//rt_thread_delay(RT_TICK_PER_SECOND * 30);
}
while(1)
{
FD_ZERO(&r_fd);
FD_ZERO(&w_fd);
FD_SET(sock,&r_fd);
FD_SET(sock,&w_fd);
if (lwip_get_error(sock) != 0)
{
gnet_conn = 0;
rt_kprintf("tcp_app_client_thread: sock = %d\n",lwip_get_error(sock));
//break;
goto conn;
}
select(sock+1,&r_fd,&w_fd,NULL,&timeout);
if (FD_ISSET(sock,&r_fd))
{
if ((len = recv(sock,&recv_buf,100,0)) > 0)
{
rt_kprintf("tcp_app_client_thread: recv data len = %d,%s\r\n",len,recv_buf);
}
else
{
gnet_conn = 0;
break;
}
}
else if (FD_ISSET(sock,&w_fd))
{
len = send(sock, send_data, 64, 0);
if (len < 0)
{
rt_kprintf("tcp_app_client_thread: send data fail!\r\n");
}
}
rt_thread_delay(1);
}
}
}
hb_haitao2009
2011-10-21
打赏
举报
回复
#define HostIP "192.168.100.120"
void app_tcp_client_thread(void *pvar)
{
static rt_tick_t net_off_timer;
struct hostent *host;
int sock, err,len;//,optval;
fd_set r_fd,w_fd;
struct sockaddr_in server_addr;
struct timeval timeout;
char recv_buf[100];
timeout.tv_sec = 0;
timeout.tv_usec = 50000;
for (;;)
{
while(1)
{
rt_thread_delay(RT_TICK_PER_SECOND*2);
host = gethostbyname(HostIP);
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(6001);
server_addr.sin_addr = *((struct in_addr *)host->h_addr);
rt_memset(&(server_addr.sin_zero), 0, sizeof(server_addr.sin_zero));
sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock == -1)
{
rt_kprintf("tcp_client_test: create socket fail!\r\n");
if (net_off_timer == 0)
net_off_timer = rt_tick_get();
if (rt_tick_get() - net_off_timer > 30000/10)
{
net_off_timer = 0;
lwip_close(sock);
rt_kprintf("tcp_client_test: reset socket!\r\n");
break;
}
gnet_conn = 0;
continue;
}
conn:
rt_thread_delay(RT_TICK_PER_SECOND * 30);
err = connect(sock, (struct sockaddr *)&server_addr, sizeof(struct sockaddr));
if (err == 0)
{
rt_kprintf("tcp_client_test: connect ok!\r\n");
gnet_conn = 1;
break;
}
//rt_thread_delay(RT_TICK_PER_SECOND * 30);
}
while(1)
{
FD_ZERO(&r_fd);
FD_ZERO(&w_fd);
FD_SET(sock,&r_fd);
FD_SET(sock,&w_fd);
if (lwip_get_error(sock) != 0)
{
gnet_conn = 0;
rt_kprintf("tcp_app_client_thread: sock = %d\n",lwip_get_error(sock));
//break;
goto conn;
}
select(sock+1,&r_fd,&w_fd,NULL,&timeout);
if (FD_ISSET(sock,&r_fd))
{
if ((len = recv(sock,&recv_buf,100,0)) > 0)
{
rt_kprintf("tcp_app_client_thread: recv data len = %d,%s\r\n",len,recv_buf);
}
else
{
gnet_conn = 0;
break;
}
}
else if (FD_ISSET(sock,&w_fd))
{
len = send(sock, send_data, 64, 0);
if (len < 0)
{
rt_kprintf("tcp_app_client_thread: send data fail!\r\n");
}
}
rt_thread_delay(1);
}
}
}
rickys2080
2011-08-01
打赏
举报
回复
[Quote=引用 3 楼 chentao_110 的回复:]
我也要关注呢 楼上的能否跟我联系下 一起学习 我有开发板 神舟的 99252598 qq
[/Quote]
好啊
涛哥110
2011-08-01
打赏
举报
回复
我也要关注呢 楼上的能否跟我联系下 一起学习 我有开发板 神舟的 99252598 qq
rickys2080
2011-07-24
打赏
举报
回复
最近我也在搞这个
zynh1020
2010-11-08
打赏
举报
回复
大家说说 如果TCP服务器通信正常,那么TCP的客户端算不算成功了
lwip
移植-源码工程
2. **TCP(Transmission Control Protocol)**:提供了面向连接的、可靠的数据传输服务,通过三次握手
建立
连接,通过ACK确认数据传输,确保数据的正确性。 3. **
UDP
(User Datagram Protocol)**:提供无连接的数据...
LWIP
和FATFS 实现 FTP
服务端
LWIP
(Lightweight IP)是一个开源的TCP/IP协议栈,它专门为嵌入式系统设计,旨在减少对RAM和ROM的占用,同时支持多种传输层协议,如TCP和
UDP
。
LWIP
的目标是在保持核心功能的同时,对系统的资源占用降到最低。这使得...
stm32F207和DP8384实现网口通信
UDP
服务端
在本项目中,我们将探讨如何使用STM32F207与DP8384芯片配合,实现100MHz的以太网通信,并构建一个
UDP
服务端
。 DP8384是一款常见的以太网物理层(PHY)芯片,用于连接微控制器与以太网接口。它支持10/100Mbps速率,...
LWIP
-freertos.rar(STM32F7芯片,
lwip
实现热插拔)
它提供了包括 TCP、
UDP
、ICMP、DHCP 和 DNS 等在内的网络协议服务。在 STM32F7 这种高性能微控制器上使用
lwIP
,可以充分发挥其计算能力,处理复杂的网络任务。 FreeRTOS 是一个实时操作系统 (RTOS),它为微控制器...
LPC1768_rt-thread_
Lwip
.zip_
LwIP
_RT
LWIP
_RT-Thread_
lwip
_
udp
_接收_m
TCP
服务端
,
UDP
服务端
,把接收到TCP客户端的信号后转发到
UDP
客户端
驱动开发/核心开发
21,616
社区成员
21,711
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章