還是關于IdTCPServer的問題啊! |
答題得分者是:careychen
|
zhgwbzhd
一般會員 發表:10 回覆:32 積分:18 註冊:2008-07-24 發送簡訊給我 |
客戶耑髮過來的信息如下:
AABBB0 其中AA是標識,BBB是數據樣例,0是asc為0結尾。通過socket髮送過來。 我在服務耑接收,如果使用 ReadLn()接收,接收不到。(過程是connect-Execute-disconnect)就是停止在readln那裏。可能的原因是髮過來的字符串不是以“LF”/“CR”/“EOL”結尾的。 使用readbuffer(void*,int)可以接收到數據。但是髮過來的數據長度不一緻。 有什么辦法,我先讀取前麵有傚數據?把賸下的數據拋棄??? 或者有沒有其他的什么方法??? 謝謝各位啦! |
careychen
尊榮會員 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
ReadLn 可以自己下 Terminate 結束字元
如果是你的例子的話 sReadString = ReadLn(#0); 這樣子試試看.... ===================引 用 zhgwbzhd 文 章=================== 客戶耑髮過來的信息如下: AABBB0 其中AA是標識,BBB是數據樣例,0是asc為0結尾。通過socket髮送過來。 我在服務耑接收,如果使用 ReadLn()接收,接收不到。(過程是connect-Execute-disconnect)就是停止在readln那裏。可能的原因是髮過來的字符串不是以“LF”/“CR”/“EOL”結尾的。 使用readbuffer(void*,int)可以接收到數據。但是髮過來的數據長度不一緻。 有什么辦法,我先讀取前麵有傚數據?把賸下的數據拋棄??? 或者有沒有其他的什么方法??? 謝謝各位啦!
------
價值的展現,來自於你用哪一個角度來看待它!! |
zhgwbzhd
一般會員 發表:10 回覆:32 積分:18 註冊:2008-07-24 發送簡訊給我 |
|
careychen
尊榮會員 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
|
zhgwbzhd
一般會員 發表:10 回覆:32 積分:18 註冊:2008-07-24 發送簡訊給我 |
P = AThread->Connection->ReadLn(#0,5000,-1);
改稱這樣,編譯報錯。“E2206 illegal character '#' (0x23)” P = AThread->Connection->ReadLn(0,5000,-1); 改稱這樣,編譯正常。不過還是得不到數據。 謝謝! ===================引 用 careychen 文 章=================== ===================引 用 zhgwbzhd 文 章=================== 我測試過了。 P = AThread->Connection->ReadLn("#0",5000,-1); 請把兩個雙引號拿掉,因為是 ascii 碼 0 ,不是字串 "#0" 還是得不到任何數據。 |
careychen
尊榮會員 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
我是用 Delphi 的,所以在送 Ascii 0 時是送 #0 , 不知 BCB 送 0x0 會過嗎?
如果不行,就要恭請 RaynorPao 大出面了 ===================引 用 zhgwbzhd 文 章=================== P = AThread->Connection->ReadLn(#0,5000,-1); 改稱這樣,編譯報錯。“E2206 illegal character '#' (0x23)” P = AThread->Connection->ReadLn(0,5000,-1); 改稱這樣,編譯正常。不過還是得不到數據。 謝謝!
------
價值的展現,來自於你用哪一個角度來看待它!! |
zhgwbzhd
一般會員 發表:10 回覆:32 積分:18 註冊:2008-07-24 發送簡訊給我 |
|
zhgwbzhd
一般會員 發表:10 回覆:32 積分:18 註冊:2008-07-24 發送簡訊給我 |
BCB中用0x0或者0都錶示0.
===================引 用 careychen 文 章=================== 我是用 Delphi 的,所以在送 Ascii 0 時是送 #0 , 不知 BCB 送 0x0 會過嗎? 如果不行,就要恭請 RaynorPao 大出面了 ===================引 用 zhgwbzhd 文 章=================== P = AThread->Connection->ReadLn(#0,5000,-1); 改稱這樣,編譯報錯。“E2206 illegal character '#' (0x23)” P = AThread->Connection->ReadLn(0,5000,-1); 改稱這樣,編譯正常。不過還是得不到數據。 謝謝! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |