我有个问题,定义了一个byte[] test = new byte[1024]
然后用来接收socket数据,原型如下:
recv_data(socket, test, 1024, &terminal_id)socket --socket id
test ---是byte[]数组
1024 ---长度
terminal_id---int参数
我想让test接收数据后,数组长度等于实际的接收数据长度,例如数据是“123456789”结果test的长度总是1024

解决方案 »

  1.   

    在回调函数里  int bytesRead = sk.EndReceive(ar);就是你实际接收的长度了.
      

  2.   

    recv_data(socket, test, 1024, &terminal_id)
    是[DllImport("MC8003.dll")]
    public static extern int recv_data(int socket,char[] recv_buffer,int buf_len,ushort  terminal_id);
    无法直接调用回掉函数,这是mc8003的封装函数,可不可以用别的方法解决
      

  3.   

    我是用 system.net.sockets 里的 socket 来实现的.