纯
纯粹新手
Unregistered / Unconfirmed
GUEST, unregistred user!
(小弟初来乍到,没多少银两,区区66分不成敬意)。
小弟遇到一个问题,向大家请教:
我在服务器端用for循环向指定的客户端发送一个数组中的全部内容(一个名单数组)
___发送端__________
kkk:array[0..10] of String;
..........
for i:=0 to 9 do
Socket.SendText(kkk);
___接收端_________________
ss1:=Socekt.ReceiveText();
...............
这样写调试运行时没有问题,只是很多时候我发送了A,B之后,客户端接收到了AB,把两次发送的一次接收了。我想可能是服务器端用FOR循环发送速度太快,客户端来不及响应,把几次接收的合成一个了吧。
我查了一下有关文章,说是可以直接用SendBuf()发送一个数组到客户端。我想知道:
1:这样做可不可以?
2:如果可以发送---接受一个数组,那客户端用ReceiveBuf()接收后,如何知道接收到的是一个数组而不是字符串之类的?
3:假如客户端知道是一个数组,那么这个数组如何在客户端使用?是不是在客户端也需要定义这个数组?接收到的数组是不是可以直接赋值给一个相同类型的数组?比如:
bbb:array[0..10] of String;
........
bbb:=Socket.ReceiveBuf(***,***);
4: 另外,如果数组发送和接受可以解决,是不是发送一个记录型的也可以同样操作??
如:
type
client_record=record
CHandle: integer;
CName:string;
CAddress:string;
CUsed: boolean;
end;
.....
aaaaa:client_record;
这个可不可以把aaaaa作为SendBuf的参数传到客户端??发送和接受是否和发送接收数组类似???
谢谢!!!
(求有价值观点,给出可行代码更佳)
小弟遇到一个问题,向大家请教:
我在服务器端用for循环向指定的客户端发送一个数组中的全部内容(一个名单数组)
___发送端__________
kkk:array[0..10] of String;
..........
for i:=0 to 9 do
Socket.SendText(kkk);
___接收端_________________
ss1:=Socekt.ReceiveText();
...............
这样写调试运行时没有问题,只是很多时候我发送了A,B之后,客户端接收到了AB,把两次发送的一次接收了。我想可能是服务器端用FOR循环发送速度太快,客户端来不及响应,把几次接收的合成一个了吧。
我查了一下有关文章,说是可以直接用SendBuf()发送一个数组到客户端。我想知道:
1:这样做可不可以?
2:如果可以发送---接受一个数组,那客户端用ReceiveBuf()接收后,如何知道接收到的是一个数组而不是字符串之类的?
3:假如客户端知道是一个数组,那么这个数组如何在客户端使用?是不是在客户端也需要定义这个数组?接收到的数组是不是可以直接赋值给一个相同类型的数组?比如:
bbb:array[0..10] of String;
........
bbb:=Socket.ReceiveBuf(***,***);
4: 另外,如果数组发送和接受可以解决,是不是发送一个记录型的也可以同样操作??
如:
type
client_record=record
CHandle: integer;
CName:string;
CAddress:string;
CUsed: boolean;
end;
.....
aaaaa:client_record;
这个可不可以把aaaaa作为SendBuf的参数传到客户端??发送和接受是否和发送接收数组类似???
谢谢!!!
(求有价值观点,给出可行代码更佳)