主題:通訊 共有38416人關注過本帖 |
---|
wp |
1樓 |
通訊 Post By:2005-6-6 14:50:00 [只看該作者]
是不是tcp通訊要比gprs通訊建立連接慢一些?每次當etr232i進行tcp連接斷開后,再次進行連接時,都會在很長一段時間連接不上,除非手動按reset或重開服務器,才能連上。即使很長時間連上后,通訊很不穩(wěn)定!不穩(wěn)定體現(xiàn)在服務器發(fā)的數(shù)據收不到,但232i能處于連接狀態(tài)!
怎樣能比較穩(wěn)定的進行tcp通訊,每次重連連不上,不知道是網絡問題,還是應該在寫這段程序上注意什么問題,還有我每次調用sysreboot()這個函數(shù),好象效果沒有手動reset徹底。時鐘在sysreboot()后,好象還可以取到sysreboot()前的值,變量值好象沒有完全清空。 |
|
單帖管理 | 引用 | 回復 |
x10 |
2樓 |
Post By:2005-6-6 21:41:00 [只看該作者]
請確認以客戶端方式打開連接時,每次督需要使用不同的本地端口號,調用myport( ),因為,按照TCP的協(xié)議,每一個連接號在關閉后有大約2min不能再用,否則會被協(xié)議當成上一次連接的操作,于是系統(tǒng)處于異常狀態(tài),直至超時(timeout)。
目前的sysreboot只是軟件重起,沒有對硬件復位,我們在后續(xù)的新版中會加入CPU對外設的復位操作。你說的時鐘是指clock()值嗎?不是很明白。 |
|
單帖管理 | 引用 | 回復 |
wp |
3樓 |
Post By:2005-6-7 8:53:00 [只看該作者]
我也注意到這一點,所以每次當它斷開重連時,我都會讓它重新獲取本地端口號和連接號,但每次重新獲得的連接號都是上一次斷開前的連接號,而且獲得連接號總是為0。我運行這么長時間從來沒有獲得過0以外的連接號?
我將取到的時鐘給struct date d;struct time t;然后sysreboot,而struct date d;struct time t中的值好象并沒有清空。 |
|
單帖管理 | 引用 | 回復 |
x10 |
4樓 |
Post By:2005-6-7 9:12:00 [只看該作者]
打開連接返回的連接號不是所說的TCP的端口號,連接號僅僅是用于操作該連接的handler,如果同時只有一個連接,通常都是0,而本地端口號(local port number)是ConnOpen()的一個輸入參數(shù)(unsigned int),請參閱編程手冊對TCP API函數(shù)的說明。
|
|
單帖管理 | 引用 | 回復 |
wp |
5樓 |
Post By:2005-6-7 9:24:00 [只看該作者]
剛剛我試了一下,如果在sysreboot后,進行連接的話,使用myport( )得到的端口號都在2000以下,但TCP API函數(shù)編程手冊上寫的范圍是2000-9000,那2000以下的本地端口進行連接會不會影響連接的質量?
|
|
單帖管理 | 引用 | 回復 |