当前位置:编程学习 > C#/ASP.NET >>

与socket编程有关的问题

大家好,我是初学者,做一个简单的C/S结构的系统,在局域网中,client端的数据要发送到 server端,用SOCKET实现,现在有一个问题是:如果client端有用户名,年龄等各种信息,我把字符串转换成流的形式,传到server端之后,怎么再把流转换并分别提取我想要的信息出来,可能我的问题有点简单,但是我实在是很想知道,请大家帮帮我 --------------------编程问答-------------------- 需要按一定格式发送数据,收到数据后,再按一定格式解析,比如:xml形式发送。。。。。。 --------------------编程问答-------------------- 你先做一个简单的能发送字符串的通讯.一步一步来 --------------------编程问答-------------------- //类转byte[]
Person person = new Person();
person.Name = "Tie";
person.Age = 100;
BinaryFormatter formatter = new BinaryFormatter();
MemoryStream stream = new MemoryStream();

formatter.Serialize(stream, person);
byte[] bytes = stream.ToArray();
stream.Close();

//byte[]转类
System.IO.MemoryStream stream = new System.IO.MemoryStream(bytes, 0, lenght);
BinaryFormatter formatter = new BinaryFormatter();
stream.Seek(0, SeekOrigin.Begin);
Person report = formatter.Deserialize(stream) as Person;
stream.Close();

//Person类
[Serializable]
public class Person
{
    public string Name;
    public int Age;
} --------------------编程问答-------------------- 接受端知道发送端发送数据的字节流长度,就可以正确的接受 --------------------编程问答--------------------
引用 3 楼 lixingtie 的回复:
//类转byte[]
Person person = new Person();
person.Name = "Tie";
person.Age = 100;
BinaryFormatter formatter = new BinaryFormatter();
MemoryStream stream = new MemoryStream();

formatter.Serialize(stream, person);
byte[] bytes = stream.ToArray();
stream.Close();

//byte[]转类
System.IO.MemoryStream stream = new System.IO.MemoryStream(bytes, 0, lenght);
BinaryFormatter formatter = new BinaryFormatter();
stream.Seek(0, SeekOrigin.Begin);
Person report = formatter.Deserialize(stream) as Person;
stream.Close();

//Person类
[Serializable]
public class Person
{
    public string Name;
    public int Age;
}

但是在.NET Framework3。5下怎么不能引用System.Runtime.Serialization.Formatters.Binary这个命名空间啊,只能引用System.Runtime.Serialization --------------------编程问答-------------------- 但是在.NET Framework3。5下怎么不能引用System.Runtime.Serialization.Formatters.Binary这个命名空间啊,只能引用System.Runtime.Serialization

------------------

我建了个.Net 3.5的项目,可以引用 。 --------------------编程问答--------------------
引用 6 楼 lixingtie 的回复:
但是在.NET Framework3。5下怎么不能引用System.Runtime.Serialization.Formatters.Binary这个命名空间啊,只能引用System.Runtime.Serialization

------------------

我建了个.Net 3.5的项目,可以引用 。
我又试了试还是不能,在WINDOWS 窗体应用程序里面可以,好奇怪 --------------------编程问答-------------------- 我是这样实现的,如果你要传name,则拼接字符串<name>hphull</name>传送出去,在另一边,处理字符串,看有没有name,如果有,提取出来就是。 --------------------编程问答-------------------- 另外,在实际的应用中,如果有大量对象通过网络传送,建议使用remoting,否则你将会写一大堆的底层代码来时你的对象交互,尤其是要实现类似远程事件的场所 --------------------编程问答-------------------- 发送的时候序列化      接收端反序列化
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,