DELPHI的CLIENTSOCKET和SERVERSOCKET之间接发数据流的问题(100分)

  • 主题发起人 主题发起人 踏雪寻煤
  • 开始时间 开始时间

踏雪寻煤

Unregistered / Unconfirmed
GUEST, unregistred user!
高手:
小弟近日用DELPHI做了一个端口通讯程序,但不知为何SERVERSOCKET中不能受到
CLIENTSOCKET发送的数据流。
我先用CIIENTSOCKET1.SOCKET.SENDBUFFER(BUF,BUF.SIZE)<BUF是个内存流>发送数据流.
然后在SERVERSOCKET1.SOCKET.RECEIVELENGTH接受数据长度,接受到了数据长度。
再用SERVERSOCKET1.SOCKET.RECEIVEBUFFER(BUF,BUF.SIZE)<BUFSHI是个内存流>把接受到的数据
放到内存流里,可是当我把数据流导入MEMO.LINES中时,却发现LINES中没数据,
但LINES中原来的一些字已经不见了,这证明数据是导入了LINES中,只是不能识别。
但用数据报套接口却可以发送、接受数据流,而且能显示到MEMO.LINES中,为什么???
因为我的数据是用流压缩的多个文本组成,不能有字符丢失的现象,
所以必须要用流的套接口来做。
究竟怎样才能让SERVERSOCKET识别CLIENTSOCET发送来的数据流!!
小弟的程序马上要交了,都快疯了!!!
望众高手赐教!!!
万分感谢!!!

困惑之人上

 
socket.ReceiveBuf(pointer(getbuf)^,recvlen);
 
memo.lines.loadfromstream(buf)
 
>可是当我把数据流导入MEMO.LINES中时
源码贴出来大家瞧瞧。
 
可以用
var
aaa: TFileStream;
begin
aaa:=TFileStream.Create('c:/'+文件名,fmCreate or fmShareDenyNone);
aaa.Seek(0,soFromBeginning);
aaa.WriteBuffer(Buf^,BUF.SIZE);
aaa.Destroy;
end;
你再从文本文件中读出
 
多人接受答案了。
 
后退
顶部