我在vfp中用winsock控制項開發乙個與微控制器通訊的程式,接收微控制器中儲存的資料。該控制項的dataarrival事件中主要**
但發現微控制器發來的資料中凡ascii碼小於128的都可正常接收,大於128的字元如果成對出現(例如漢字),也可以正常接收。但如果不成對就會出現異常,例如微控制器發出的是 chr(165) + chr(3), 實際收到的卻是0x3f。不僅不對還丟失了乙個字元。如果是一串字元,凡不是成對出現的ascii碼大於128的均被丟失。我修改getdata第二個引數無論是8還是17,或者是其它任何值,均無作用。請問能有辦法解決嗎?有個某人重新做了個winsock,可以免除這種情況,明天發給你
當傳送ascii碼大於128的控制符無法傳送的問題 。
如果ascii碼大於128用createbinary函式轉換就可以傳送了。
我現在主要是接收不到不成對出現的 ascii 碼大於128的字元。例如微控制器發出的是 chr(165) + chr(3), 實際收到的卻是0x3f。不僅不對還丟失了乙個字元。還真沒試過這種,你試試用tcp的除錯軟體看能不能接到完整的字元
我個人認為是vfp在與控制項傳遞資料時對收到的資料內部自動做了**頁轉換造成的。
vfp幫助中是這樣說的:activex 控制項和 ole 物件通過 vt_ui1 型別的陣列將二進位制資料傳遞給 visual foxpro後。visual foxpro 自動將它轉換為 visual foxpro 字串的形式。
我想這說的控制項的函式返回值或屬性返回值。不幸的是,傳址返回資料如果型別不是數值型依然會發生**轉換。
如果你一定要用vfp來傳這樣的資料,要用數值型別的變數來接收資料是可以的,但這時又來了乙個問題,就是vfp會自動從接收資料緩衝區中以4位元組來接收,且小於4位元組時getdata指令將不被執行。這樣實際操作時的問題是,如果bytestotal的值不是4的整數倍,則餘數字節會保留在接收緩衝區內,與下一次接收到資料合併到一起。例如,如果接收到是7個位元組,那麼用getdata(@r)(前面要用r=0)後可以取出4個位元組,再用一次getdata(@r)則什麼都沒做,剩下的3個位元組還會保留在接收緩衝區中,但下次再來資料這3個位元組是不會丟失的,而是和新資料合併在一起,bytestotal的值也是新資料的位元組數加3。假定你的資料傳是永不停止的,那就可以自己在處理接收資料時分開每次接收的資料;若資料是間歇性接收的,且不能保證收到的資料位元組數是4的整數倍,就真的不好辦了,因為會有小於4的那幾個位元組要長時間無法取出處理。
不知我說明白了沒有。
如果樓上分析正確的話,試試用 17 作為 getdata 的接受資料型別引數,並在呼叫 getdata 前用 comarray(winsock控制項名, 1000) 設定為位元組陣列不做轉換。
這個我試了,也不行啊。dkfdtf能不能寫乙個完整的示例出來啊,有關這個問題困擾我很久了。
如果哪位大俠很好的解決了這個問題,我可以另外開貼給分的,呵呵,請大家多給些意見吧!
在我以前用winsock控制項時,並未感覺到有樓主出現的現象。只要資料符合文字檔案格式,就都可正確的接收。
但該控制項無法處理二進位制資料,比如 chr(0)。所以也就放棄了對該控制項的使用
本人做過乙個簡單的藥店管理系統,其實很多時候使用者也不知道他們想要的是個什麼東西,等你做好了才說這裡不行,那裡不行,非常讓人頭疼。無休止的更改,直到你筋疲力盡。
建議你你找乙個成功的醫藥管理軟體用用看看,然後再做自己的。
老天,不要編錯了會不會賣錯藥給客戶?我以前老家就有過這樣乙個笑話(人救活了,才敢說笑話)
有乙個人到賣藥店那裡說要買打蟲的藥,那藥店就給他包了給豬打的藥,結果不曾想是人吃的,就搞出了**煩.
在中使用SQLDMO
曾幾何時,夥伴們為的公升級傷透了腦筋.往往程式的公升級趕不上資料庫的公升級 版本控制的好,這也許不是什麼問題,但對於很大一部分中國公司來說這是無法避免的 而有些n久以前的資料庫要使用新程式的時候,資料庫的公升級簡直就是無從下手.所以對比資料庫公升級的緊要性就逐漸的凸現出來.對於表和字段的公升級按道理...
在ClanLib中使用blend func
本文是對blend func完全沒有認識的人寫的,就好象一天前的我一樣。廢話我就留到後面才說吧。在clanlib庫中的cl su ce與cl sprite中都會有 這個函式 void set blend func cl blendfunc src,cl blendfunc dest 其cl blen...
在MFC中使用Tab Control
說實話,我剛開始看見tab control的時候,覺得很簡單。哪知道用了一下,才發現自己錯了。要用好它,還是需要一些技巧的。經過網上搜尋資料,以及我自己的摸索,把一些要點記錄在這裡。tab control的執行效果有點像property sheet,但兩者還是有一些區別。我的理解就是property...