多台分机给主机发送数据
发送的数据格式为: 分机的IP地址+简单的数据(比如一个整数)主机按接收到的循序分别建立一个对应的数据
如:A[N]=ip地址 B[N]=数据10.0.0.1 A[1] B[1]
10.0.0.222 A[2] B[2]
10.0.0.123 A[3] B[3]
10.0.0.55 A[4] B[4]
10.0.0.9 A[5] B[5]
........各台机器多次发送后都在各自的变量上累加,有什么简单的方法,(不希望通过A B 的循环比较,可以建立其它的辅助数据)?
发送的数据格式为: 分机的IP地址+简单的数据(比如一个整数)主机按接收到的循序分别建立一个对应的数据
如:A[N]=ip地址 B[N]=数据10.0.0.1 A[1] B[1]
10.0.0.222 A[2] B[2]
10.0.0.123 A[3] B[3]
10.0.0.55 A[4] B[4]
10.0.0.9 A[5] B[5]
........各台机器多次发送后都在各自的变量上累加,有什么简单的方法,(不希望通过A B 的循环比较,可以建立其它的辅助数据)?
就是把每台分机发送过来的数据在服务器上累加到自己的变量上原型为:
分机1在处理事务 向发送器发送IP+工作进度
分机2在处理事务 向发送器发送IP+工作进度
....
服务器接收分机的数据
为每一个用户建立进度条实际上就是把每台分机的进度条集中显示在服务器上
PListItem = ^TListItem;
TListItem = record
nCount: Integer;
nOther: Integer;
end;function TForm1.AddItem(sIP: string; nCount: Integer): Boolean;
var
nIndex: Integer;
temObj: PListItem;
begin
nIndex := FList.IndexOf(sIP);
if nIndex <> -1 then
begin
PListItem(FList.Objects[nIndex])^.nCount := PListItem(FList.Objects[nIndex])^.nCount + nCount;
end else
begin
New(temObj);
temObj^.nCount := nCount;
FList.AddObject(sIP, Pointer(temObj));
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
AddItem('192.168.0.9', 5);
end;
看看行不行
希望改为
function TForm1.AddItem(sIP: string; nCount: Integer): Boolean;
var
nIndex: Integer;
begin
nIndex := FList.IndexOf(sIP);
if nIndex <> -1 then
begin
*** PListItem(FList.Objects[nIndex])^.nCount := PListItem(FList.Objects[nIndex])^.nCount + nCount;
end else
begin
FList.AddObject(sIP, Pointer(nCount));
end;
end;
可以吗?***句如何修改
function TForm1.AddItem(sIP: string; nCount: Integer): Boolean;
var
nIndex: Integer;
TemInt: PInteger;
begin
nIndex := FList.IndexOf(sIP);
if nIndex <> -1 then
begin
PInteger(FList.Objects[nIndex])^ := PInteger(FList.Objects[nIndex])^ + nCount;
end else
begin
New(TemInt);
TemInt^ := nCount;
FList.AddObject(sIP, Pointer(TemInt));
end;
end;差不多 原理一样 哥们 学一下指针什么的