代码:
这个是接收数据.
private void InceptData()
{
string Data = string.Empty;
string data = string.Empty;
int len = 0;
Byte[] buf1 = new Byte[1024];
FileStream fs = new FileStream(@"F:\事例\成为终端\Demo\调试.txt",FileMode.OpenOrCreate,FileAccess.ReadWrite,FileShare.ReadWrite,8,true);
while(keeplive)
{
try
{
if (!NetStream.CanRead)
{
return;
}
}
catch(Exception ex)
{
buf1 = null;
keeplive = false;
System.Console.WriteLine(System.DateTime.Now.ToString() + ex.Message.ToString() + "\n\r");
EveSendMsg(System.DateTime.Now.ToString() + "通信信息#与中心连接发生故障,读取数据失败[1]!" + "\n\r");
this.Conn_Error();
}
try
{
len = NetStream.Read(buf1,0,buf1.Length);
if(len < 1)
{
keeplive = false;
buf1 = null;
EveSendMsg(System.DateTime.Now.ToString() + "通信信息#数据为空!" + "\n\r");
this.Conn_Error();
Thread.Sleep(200);
continue;
}
else
{
Data = System.Text.Encoding.Default.GetString(buf1,0,len);
fs.Write(buf1,0,buf1.Length);
EveSendMsg(Data + "\n\r");
}
}
catch(Exception ex)
{
System.Console.WriteLine(ex.Message.ToString() + "\n");
EveSendMsg(System.DateTime.Now.ToString() + "通信信息#" + ex.Message.ToString() + "\n\r");
}
}这个是连接中心的代码:private void Link()
{
if(!keeplive)
{
if(!link_ok)
{
link_ok = true;
try
{
this.Conn_Error();
EveSendMsg(System.DateTime.Now.ToString() + "通信信息#与中心建立连接!" + "\n\r");
TcpConn = new TcpClient(IP,Prot);
NetStream = TcpConn.GetStream();
//sr = new StreamReader(NetStream);
TrReceive = new Thread(new ThreadStart(InceptData));
TrReceive.IsBackground = true;
TrReceive.Start();
keeplive = true;
EveSendMsg(System.DateTime.Now.ToString() + "通信信息#与中心连接成功!" + "\n\r");
}
catch(Exception ex)
{
keeplive = false;
System.Console.WriteLine(System.DateTime.Now.ToString() + ex.Message.ToString() + "\n");
}
link_ok = false;
}
}