clientsocket接收问题!!(0分)

  • 主题发起人 主题发起人 samen
  • 开始时间 开始时间
S

samen

Unregistered / Unconfirmed
GUEST, unregistred user!
send:array[1..1000] of Trecord;
rece:array[1..1000] of Trecord;
P:pchar;
serversocket1.socket.connections[0].sendbuf(send,sizeof(send));//当sizeof()大于
176*41的时候clientsocket接收出现错误
如果sizeof(send,sizeof(send))<176*41接收正常
p:=@rece;
clientsocket1.socket.recevbuff(rece,clientsocket.socket.recevlenght);
inc(p,clientsocket.socket.recevlenght);
如何解决?
 
如何解决clientsocket接收最大为8K的限制????
 
我是这样处理的:分段发送。
请看下面的例子,采用分段发送,每次发送8K.
http://delphi.mychangshu.com/dispdoc.asp?id=531
 
send:array[1..1000] of Trecord;
rece:array[1..1000] of Trecord;
P:pchar;
serversocket1.socket.connections[0].sendbuf(send,sizeof(send)*countreco);
//countreco为数组总共有多少元素如果大于100就会出错误!
p:=@rece;
clientsocket1.socket.recevbuff(rece,sizeof(rece)*countreco);
inc(p,sizeof(rece)*countreco);
如何解决?最好贴一下处理代码。
 
传流就没有限制了
 
给一个传流的代码,也是记录型数组的。
 
这好像是ClientSocket的bug,建议用Indy控件!
 
Indy的就没问题!!我终于找到救星了!
怎么Delphi自家的东西总是有毛病!!
 
??如何安装?哪里down?
 
最好能改一下上面的代码:
send:array[1..1000] of Trecord;
rece:array[1..1000] of Trecord;
st:Tmemorystream;
st:=Tmemorystream.creat;
st.write(send,sizeof(send)*200);//100条记录
serversocket1.socket.connections[0].sendstream(st);

p:=@rece;
clientsocket1.socket.recevbuff(rece,sizeof(send)*200);
inc(p,clientsocket.socket.recevlenght);
还是不能解决。

 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
504
import
I
后退
顶部