你的程序有点问题吧?
长度65是不是有问题?
把它改大一些试试,real类型的这样给长度应该有问题的~

解决方案 »

  1.   

    你的程序有错误
    1、p:=pchar(send); 不成功
    2、setlength(rec,65); 接受长度远大于65
    3、将数据转化成string 传送比较合适
      

  2.   

    function FloatToStr(Value: Extended): string;
      

  3.   

    好象是长度65的问题,当长度为65的时候,只能接受到0.63吧,可是我把长度改成650的时候就可以接受了,可能是因为api中的send函数发送的字节长度问题吧,看一下MSDN中的说明吧
      

  4.   

    1. 将 serversock.Socket.Connections[0].SendBuf(p^,65);
      改成serversock.Socket.Connections[0].SendBuf(p^,65*SizeOf(real));2. 将c.socket.ReceiveBuf(p^,65);
      该成c.socket.ReceiveBuf(p^,65*SizeOf(real));这样就可以了.你那样做不是收不全,而是没有发全。
     发送的时候Pchar对应的是字节,而一个real值包含几个字节
     接收的时候类同。