网络通信传输2维数组的问题
我现在在做的局域网聊天工具,要在客户端登录之后,服务器传输一个在线好友的信息给客户端。
这个信息我是用一个2维数组来存放的,因为里面有用户名,和昵称等信息。。这个数组被放到一个record类型里面。发送到客户端那边去。
程序显示我从数据库查询的在线用户信息是没有问题的。
程序如下:
infomation:array[0..1000,0..1000] of String;
sql:='select * from online';
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(sql);
ADOQuery1.Open;
if adoquery1.RecordCount<>0 then
begin
while not adoquery1.Eof do
begin
k:=k+1;
for l:=0 to adoquery1.FieldCount-1 do//列循环
begin
it.infomation[k,l]:=adoquery1.Fields.Fields[l].AsString;
end;
adoquery1.Next;
end;
it.infocaption:='在线用户列表';
session[i].CSocket.SendBuf(it,sizeof(it));
end;
不知道我这样对2维数组这样赋值是不是有问题
因为主要的问题是在我客户端接收的record类型中。。。
我在客户端写如下代码接收:
socket.ReceiveBuf(it,sizeof(it));这个it就是接收到的record类型,里面有2维数组
然后我showmessage(it.infomation[0,0]);
就是上面这一句给我报错。直接说 access violation..错误。
我怀疑是我接收数组的时候出了什么错误,请大家帮我看看