首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

Sockt Receivebuf此处接收到的最后一位丢失,请教是哪里出有关问题

2013-01-07 
Sockt Receivebuf此处接收到的最后一位丢失,请问是哪里出问题以下是我的代码,请看是否有问题:服务端的proc

Sockt Receivebuf此处接收到的最后一位丢失,请问是哪里出问题
以下是我的代码,请看是否有问题:
服务端的procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
    ilen:integer;
    buf:array of byte;
    astr:string;
begin
   //接收客户数据
     ilen:=Socket.ReceiveLength  ;
     SetLength(buf,ilen);
     Socket.ReceiveBuf(buf,ilen);  //此处接收到的最后一位丢失,如客户端发送EDIT1,这里接收EDIT,后面少了个1
     Memo1.Lines.add(  PChar(buf)) ;
end;
客户端的发送:
procedure TForm1.Button3Click(Sender: TObject);
var
  ilen:integer;
  buf: array of Byte;
begin
  ilen:=  Length(edit2.Text) ;

  SetLength(buf,ilen);
 
  StrCopy(PChar(buf), PChar(Edit2.Text));
  ClientSocket1.Socket.Sendbuf(buf,ilen )   ;
end;
[解决办法]
1.Button3Click

  ClientSocket1.Socket.Sendbuf(buf,sizeof(buf)) ;

2.ServerSocket1ClientRead

var
  buf:array of byte;
begin
  Socket.ReceiveBuf(buf,sizeof(buf));
  Memo1.Lines.add( PChar(buf)) ;
end;

热点排行