序列化途径 已经实现了一个从客户端序列化对象,服务器端反序列化对象的聊天小程序,问题是我在服务器端得到对象后怎么判断这次服务器要做什么逻辑呢,要是我在客户端序列化前传字符串到服务器序列化就会有问题,我该怎么解决呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不要一条路走死,聊天小程序可以不用序列化啊立即成为编程经验丰富的程序员不是梦,详见:http://www.psec.net.cn private void ClientService(object cli) { TcpClient tc = (TcpClient)cli; Console.WriteLine(((IPEndPoint)tc.Client.RemoteEndPoint).Address.ToString()); Console.WriteLine(((IPEndPoint)tc.Client.RemoteEndPoint).Port.ToString()); NetworkStream stream = tc.GetStream(); StreamReader reader = new StreamReader(stream); IFormatter formatter = new BinaryFormatter(); try { //while (true) { string command = reader.ReadLine().Trim(); if (command == "register") { this.RegisterNewUser((QQInfo)formatter.Deserialize(stream), tc); } else if (command == "login") { this.Login((QQLogin)formatter.Deserialize(stream), tc); } } } finally { stream.Close(); } }private void btnLogin_Click(object sender, EventArgs e) { QQLogin q = new QQLogin(); q.QQNumber = Convert.ToInt32(this.cboQQNumber.Text); q.QQPassword = this.txtPassword.Text; TcpClient client = new TcpClient(); client.Connect(IPAddress.Parse("127.0.0.1"), 6000); IFormatter formatter = new BinaryFormatter(); stream = client.GetStream(); sw = new StreamWriter(stream); sw.WriteLine("login"); sw.Flush(); formatter.Serialize(stream, q); sr = new StreamReader(stream); MessageBox.Show(sr.ReadLine()); stream.Close(); } 关于使用sqlparameter的问题 Ext 问题. 在线急等. 如何高效合并二进制文件? winform定时刷新数据 QQ管理软件 请教:如何用C#代码实现文挡窗口的选项卡式布局,工具窗口的自动隐藏和停靠功能 vs2008调试时程序自动退出 如何用C#打开应用程序(如TXT文件) 怎样将两个dataset合并成一个 怎样实现控件的显示区域可以超出form,就象combobox拉下部分可以在form外? GooglePageRank怎么查询啊 关于 statusStrip 的问题
{
TcpClient tc = (TcpClient)cli;
Console.WriteLine(((IPEndPoint)tc.Client.RemoteEndPoint).Address.ToString());
Console.WriteLine(((IPEndPoint)tc.Client.RemoteEndPoint).Port.ToString());
NetworkStream stream = tc.GetStream();
StreamReader reader = new StreamReader(stream);
IFormatter formatter = new BinaryFormatter();
try
{
//while (true)
{
string command = reader.ReadLine().Trim();
if (command == "register")
{
this.RegisterNewUser((QQInfo)formatter.Deserialize(stream), tc);
}
else if (command == "login")
{
this.Login((QQLogin)formatter.Deserialize(stream), tc);
}
}
}
finally
{
stream.Close();
}
}private void btnLogin_Click(object sender, EventArgs e)
{
QQLogin q = new QQLogin();
q.QQNumber = Convert.ToInt32(this.cboQQNumber.Text);
q.QQPassword = this.txtPassword.Text;
TcpClient client = new TcpClient();
client.Connect(IPAddress.Parse("127.0.0.1"), 6000);
IFormatter formatter = new BinaryFormatter();
stream = client.GetStream();
sw = new StreamWriter(stream);
sw.WriteLine("login");
sw.Flush();
formatter.Serialize(stream, q);
sr = new StreamReader(stream);
MessageBox.Show(sr.ReadLine());
stream.Close();
}