通过socket来发送信息的时候,它只接受byte[]类型的参数,怎么样把一个对象转为byte[],之后将它通过socket发送呢?
前段时间测试一个P2P程序,通过UDP来发送数据。UdpClient.Send(..)方法需要一个byte[]这样的参数。想当年用c++Builder的时候,只需要用强制转换就行了。如今时过境迁,.net平台上处理这事却似乎有些麻烦!今天恰好在csdn上见一帖,又看到了另一种处理方法,^_^, 现将我所知的3种方法总结一下。
一、通过序列化将对象转为byte[], 之后再反序化为对象
public
class
P2PHelper
![](https://i-blog.csdnimg.cn/blog_migrate/d24614771ee3726dcfaad5cb12b8d4e7.gif)
{ /**//// <summary>
/// 将一个object对象序列化,返回一个byte[]
/// </summary>
/// <param name="obj">能序列化的对象</param>
/// <returns></returns>
public static byte[] ObjectToBytes(object obj)
![](https://i-blog.csdnimg.cn/blog_migrate/dc82b47f2c8fb8476945e732fe0f44e1.gif)
{
using (MemoryStream ms = new MemoryStream())
![](https://i-blog.csdnimg.cn/blog_migrate/dc82b47f2c8fb8476945e732fe0f44e1.gif)
{
IFormatter formatter = new BinaryFormatter();
formatter.Serialize(ms, obj);
return ms.GetBuffer();
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/bbbf6af622459b19edfe27684cc4f13e.gif)
前段时间测试一个P2P程序,通过UDP来发送数据。UdpClient.Send(..)方法需要一个byte[]这样的参数。想当年用c++Builder的时候,只需要用强制转换就行了。如今时过境迁,.net平台上处理这事却似乎有些麻烦!今天恰好在csdn上见一帖,又看到了另一种处理方法,^_^, 现将我所知的3种方法总结一下。
一、通过序列化将对象转为byte[], 之后再反序化为对象
![](https://i-blog.csdnimg.cn/blog_migrate/c1943c5a76dc24e9904170adf1206b62.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d24614771ee3726dcfaad5cb12b8d4e7.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/1980d331b20bff967a3688759467b7a9.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/bbbf6af622459b19edfe27684cc4f13e.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/bbbf6af622459b19edfe27684cc4f13e.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/bbbf6af622459b19edfe27684cc4f13e.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/358869cfac7eb8379cbc888540899e2a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/bbbf6af622459b19edfe27684cc4f13e.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/dc82b47f2c8fb8476945e732fe0f44e1.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9fea5fa0ef2d1981d2e80cbad55e6f7b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/bbbf6af622459b19edfe27684cc4f13e.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/dc82b47f2c8fb8476945e732fe0f44e1.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9fea5fa0ef2d1981d2e80cbad55e6f7b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/bbbf6af622459b19edfe27684cc4f13e.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/bbbf6af622459b19edfe27684cc4f13e.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/bbbf6af622459b19edfe27684cc4f13e.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/358869cfac7eb8379cbc888540899e2a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/358869cfac7eb8379cbc888540899e2a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/bbbf6af622459b19edfe27684cc4f13e.gif)