硬汉嵌入式论坛

 找回密码
 立即注册
查看: 6157|回复: 4
收起左侧

[有问必答] 有關lwip 相關問題

[复制链接]

1

主题

2

回帖

1

积分

新手上路

积分
1
发表于 2014-5-21 17:21:30 | 显示全部楼层 |阅读模式
大家好
我是一位剛踏入lwip沒多久的新手
我這邊有做一個實驗關於一個伺服端及多個客戶端部分
這些客戶端都會持續傳送訊息給我伺服端去接收
而我伺服端會將這些資訊做處理
現在發生一個問題就在於說
由於客戶端連到伺服端 有時候會發生中斷狀況 接者客戶端會自動再重新連線至伺服端
而我伺服端並不知道伺服端中途離線而自動偵測有新的客戶端進來 自動增加PORT數量
而原本的PORT則一直卡在那不動

但時間一久之後就會發生伺服端可能PORT端數量過多而導致當機狀況
可是客戶端並不知情(因為我這邊設定只負責丟資料 並不會要求伺服端回傳訊息給他)
我在想是不是有沒有解決方法
平均每多久去偵測一些閒置PORT端 並且執行刪除動作呢?
或者是增加記憶體去紀錄那些PORT 接者平均時間去檢查是否有值近來 沒有的話就刪掉PORT端

我是有試過用tcp_poll指令 可是感覺效果沒出現

不好意思 小弟文筆不好請見諒
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107759
QQ
发表于 2014-5-21 20:17:39 | 显示全部楼层
不好意思啊,楼主。

LWIP方面,我的经验也比较少,你要是问题RTOS或者GUI方面的,我可以帮你。
回复

使用道具 举报

1

主题

2

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2014-5-22 09:39:09 | 显示全部楼层
不好意思唷  因為我也是踏進這領域也不久
可是我可以將我這邊做的事大約講一下
由於我這邊是用STM32F407系列晶片
我有導入lwip過去 只是單純從網路端那邊接收資料進來(這是伺服端部分
而我客戶端則是一般手機APP部分 他們只有一個功能 那就是傳送訊息出去而已
現在目前狀況是這樣 多個手機可以藉由區域網路連線至我伺服端 並且傳送訊息過去
而我伺服端也能成功接收訊息後做出後續處理
但是現在發生就是在於我上面所提出的問題
當我手機APP可能中途斷了一下 又連上去
因為伺服端會偵測有新客戶端 於是做出新增PORT窗口使用
可是舊的會卡在那
久而久之 就變成累積閒置狀況 最後伺服端變成死機 也就當掉了
於是我就想說
是不是有辦法去解決這種閒置端口的問題
因為我手機(客戶端)只是單純傳送資料而已(這是我們這邊有人規定的)
所以我本來想說好像有種方法叫keepalive 變成不管用(感覺他好像也要客戶端接收回傳
還有一種方法叫tcp_poll方面資訊 可是試起來效果並沒想像中那麼好
所以我在想說把這問題問看看各位意見

不好意思 小弟文筆真的很不好 請見諒
回复

使用道具 举报

15

主题

40

回帖

85

积分

版主

Rank: 7Rank: 7Rank: 7

积分
85
发表于 2014-5-30 10:27:58 | 显示全部楼层
繁体字看着有点累,不过你的意思是不是说,手机那边传数据过来,然后lwip这边接收?
目前的问题是如果期间中断了,那就会新的port不停的生成,旧的还在,最后当机?
---------------------------------------------------------
如果是这个意思的话,我觉得有两个办法,
一个办法是,监测port超时,lwip不是很了解,uip知道点,里面有一个0.5秒处理超时tcp的函数,可以在里面改。
简单说就是监测这个port是否连接超时,如果超时,则把这个tcp连接删除掉。
另一个办法,手机连接lwip的时候,可以提供一个特征码,比如手机的sn号。这样等新的连接到来的时候,会先轮询特征码,如果之前存在,则继续用那个port,如果不存在,则重新建立新的。
---------------------------------------------------------
个人感觉第一个办法编程估计会简单些,就是超时删除
回复

使用道具 举报

1

主题

2

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2014-6-24 14:31:03 | 显示全部楼层
恩..
不好意思 因為我這邊是用LWIP協議去作的
我想問說 lwip是否有類似監控PORT函數
超時就刪掉的方法~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-6-13 07:10 , Processed in 0.294771 second(s), 32 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表