我服務器用TIdTCPServer的ReadLn()接收來自客服端的資料,這些資料里可能會有0d 0a,當遇到這個時就會出錯,怎么解決?很少用delphi。請大家幫幫忙
uj5u.com熱心網友回復:
那就別readln了,od oa是換行的,你還是讀取二進制流吧,Execute事件中AThread.Connection.ReadBufferuj5u.com熱心網友回復:
接收用ReadBuffer發送用WriteBuffer
uj5u.com熱心網友回復:
頂2位高手,緊跟高手的腳步indy
AThread.Connection.ReadBuffer
uj5u.com熱心網友回復:
客服端不由我控制,那邊怎么發我不知道啊。
其實是這么個事,別人通過網頁post一個檔案,我這端接受。這時可能會有回車啊
uj5u.com熱心網友回復:
ReadLn()第1個引數是讀取資料結束符號,默認是#10(即換行)。改一個別的看看,不行就沒辦法了uj5u.com熱心網友回復:
別人怎么發是他的事
你自己 用ReadBuffer接收就行了!
uj5u.com熱心網友回復:
我用的是INDY10,怎么沒看到那個ReadBuffer?好像和INDY9有點不同,Execute事件的引數是TIdContext,不是上面說的AThread。我該怎樣才能呼叫這個函式?
uj5u.com熱心網友回復:
有2種方法可讀入我這里講一種我用的,
RxBuf:TIdBytes;
AContext.Connection.IOHandler.readBytes(RxBuf, SizeOf (Paquete));
Idglobal.BytesToRaw(RxBuf, Paquete, SizeOf (Paquete));
我讀入的東西在Paquete包里,當然Paquete的屬性你自己要定義。
發送是
RxBuf := Idglobal.RawToBytes(Paquete, SizeOf (Paquete));
AContext.Connection.IOHandler.Write(RxBuf);
但你不需要發送,對否。
uj5u.com熱心網友回復:
這個位元組,轉換,真麻煩啊轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/130905.html
標籤:網絡通信/分布式開發
上一篇:急!如何雙擊pas檔案,不要重新打開一個delphi實體
下一篇:求助:Delphi下呼叫NIDAQmx的nicaiu.dll中的DAQmxCreateAIVoltageChan回傳-200088錯誤
