贴出主要代码:
private void ReceiveData(object cUserData)
{
User cUser=(User ) cUserData;
//连接断开标志
bool closed=false;
byte[] flagbyte=new byte [1];
while (!closed )
{
try
{
//检测是否有课接收的数据
if(cUser.client.Available>0)
{
byte[] bytes=new byte [cUser.client.Available ];
cUser.netStream.Read (bytes,0,bytes.Length );
}
//监测连接是否存在
if(cUser.client.Client.Poll (0,SelectMode.SelectRead))
closed=int.Equals(cUser.client.Client.Receive (flagbyte,SocketFlags.Peek),0);
}
catch {
closed =true;
System.Diagnostics.Debug.WriteLine ("断开连接!");
cUser.Close ();
}
Thread.Sleep (1);
}
}
public class User
{
public string cName { get; set; }
public TcpClient client { get; set; }
public NetworkStream netStream { get; set; }
public User(TcpClient _client)
{
this.client = _client;
this.netStream = client.GetStream();
}
public void Close()
{
netStream.Close();
client.Client.Close();
client.Close();
}
}