我想用send发送filesize(一个整形数字)有什么办法
试过内存拷贝了,好像不是我想要的数据,下面这样拷贝为什么数值是错的
CopyMemory(buff,@filesize,Sizeof(filesize));
var
  s :TSocket;
  filesize: integer;
  buff: array[0..512] of char;
......  fstream := tfilestream.Create('c:\test.txt', fmopenread);
  filesize := fstream.Size;
  我想发送filesize的数值到服务端要怎么发送呢?是整形数字
  send(s,buff,4,0); //怎样能让buff=filesize的数值啊?

解决方案 »

  1.   

    send(s, filesize, sizeof(filesize), 0);
      

  2.   

    send(s, @filesize, sizeof(filesize), 0);
      

  3.   

    send(s, @filesize, sizeof(filesize), 0);这样编译不了
      

  4.   


    发送
    var
      i:integer;
    begin
      i := 100;
      send(Client,i,SizeOf(integer),0);
    end;
    接收
    var
      recsock: TSocket;
      addr: sockaddr_in;
      addrlen: Integer;
      i:integer;
    begin
      recsock := accept(Server,@addr,@addrlen);
      recv(recsock,i,SizeOf(integer),0);   //i:=100;
    end;
      

  5.   

    我用 API写的客户端发送数据到Indy控件做的服务端,是不是有冲突?
    是不是和网络字节顺序有关?
    发现原来的数据是 00 00 00 08
             变成了 08 00 00 00