这么简单都没人会??不是吧????????????????? (100分)

  • 主题发起人 主题发起人 carem1
  • 开始时间 开始时间
C

carem1

Unregistered / Unconfirmed
GUEST, unregistred user!
由于放了很久都没有回答,所以我改了一下内容,但是主体没变~!!

procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
actbyte,MyReceviceLength: integer;
MyBuffer: array[0..10000] of byte; {设置接收缓冲区}
DriverList:TStringList;
begin
if (temptxt='list') then
begin
MyReceviceLength := socket.ReceiveLength; //读出包长度
if ClientSocket1.Active then
Socket.ReceiveBuf(MyBuffer, MyReceviceLength); //接收数据包并读入缓冲区内
MyTempStream.Write(MyBuffer, MyReceviceLength); //将数据写入流中
//写到这里不会写了~!!东西是传过来了,但是怎么将mytempstream里面的东西写到DriverList里面阿??
end;
end;
 
必须要用流来实现吗??
其实客户端通过调用服务端的接口,使用OleVariant参数就可以实现。 [^]
 
请写出来吧~!!
 
List:=TStringList.Create;
List.LoadFromStream(MemStream);
list.SaveToFile('C:/abc.txt');
List.Free;
这样可以吗?
我无法调试,只能猜一下
 
MyTempStream.Write(MyBuffer, MyReceviceLength);
mytempstream.savetofile('c:/1.txt');
drivelist.loadfromfile('c:/1.txt');
 
你未明确的标示你所传递的数据类型。
如我要传我的个人资料
Type
TMyDoc=record
name:string;
age:integer;
end;
PMyDoc=^TMyDoc
var
P:PMyDoc
服务器:
我用的udp
New(P);
with p^ do
begin
name:='TCustomzd';
age: =24;
QQ:=93429051;
end;
NMUDP1.SendBuffer(P,sizeof(TMyDoc));
客户端:
procedure TForm1.NMUDP1DataReceived(Sender: TComponent; NumberBytes: Integer; FromIP: String; Port: Integer);
var
P:PMYDOC

begin
NMUDP1.ReadBuffer(P,SIZEOF(TMyDoc));
DriverList.add('名字:'+P^.name+'年龄'+P^.age);
end;
我没有调试,但我想思路没有问题。


 
多人接受答案了。
 
正如Tcustomzd, 所说,你的数据是什么格式?或者把完整的代码,或者思路说出来,别人才会分析也。一般来说你两边(s和c)定义的数据结果一样的话可以直接LoadFormStream;
 
正如Tcustomzd, 所说,你的数据是什么格式?或者把完整的代码,或者思路说出来,别人才会分析也。一般来说你两边(s和c)定义的数据结果一样的话可以直接LoadFormStream;
 
后退
顶部