如果用控制台输出服务器端的消息,程序就不继续运行了,不输出就可以继续运行,为什么啊?
private void AcceptMessage()
{
Console.WriteLine("开启新线程接收来自服务器的消息...");
int len,i;
NetworkStream netStream = new NetworkStream(ConnServer.getSocket());
while (true)
{
try
{
byte[] buffer = new byte[10000];
len = netStream.Read(buffer, 0, buffer.Length);
string[] message = Encoding.UTF8.GetString(buffer).Split( '|'); for (i = 0; i < message.Length;i++ )
{
Console.WriteLine(message[i]);
}
switch (message[0])
{
case "ERR"://用户名或密码错误
LoginResult(message);
break;
case "EXT"://用户名重复登陆
LoginResult(message);
break;
case "LIST"://获取好友列表
GetFriendList(message);
break;
case "JOIN"://有新好友上线
JoinFriend(message);
break;
case "PRVC"://收到聊天信息
PrvChat(message);
break;
//以下部分尚未完成:
case "FREQ":
FileRequest(message);
break;
case "FACC":
AccFileSend(message);
break;
case "QUIT":
QuitFriend(message);
break;
case "GRPL": break;
case "GRPC": break;
}
netStream.Flush();
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}
}
private void AcceptMessage()
{
Console.WriteLine("开启新线程接收来自服务器的消息...");
int len,i;
NetworkStream netStream = new NetworkStream(ConnServer.getSocket());
while (true)
{
try
{
byte[] buffer = new byte[10000];
len = netStream.Read(buffer, 0, buffer.Length);
string[] message = Encoding.UTF8.GetString(buffer).Split( '|'); for (i = 0; i < message.Length;i++ )
{
Console.WriteLine(message[i]);
}
switch (message[0])
{
case "ERR"://用户名或密码错误
LoginResult(message);
break;
case "EXT"://用户名重复登陆
LoginResult(message);
break;
case "LIST"://获取好友列表
GetFriendList(message);
break;
case "JOIN"://有新好友上线
JoinFriend(message);
break;
case "PRVC"://收到聊天信息
PrvChat(message);
break;
//以下部分尚未完成:
case "FREQ":
FileRequest(message);
break;
case "FACC":
AccFileSend(message);
break;
case "QUIT":
QuitFriend(message);
break;
case "GRPL": break;
case "GRPC": break;
}
netStream.Flush();
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货