110,534
社区成员
发帖
与我相关
我的任务
分享
public class server
{
TcpListener listener=null;
bool isWork=true;
private void connectSocket()//线程方法
{
string serverPort = ConfigurationManager.AppSettings["ServerPort"];
this.listener = new TcpListener(IPAddress.Any, int.Parse(serverPort));
listener.Start();
TcpClient client = null;
NetworkStream stream = null;
try
{
client = listener.AcceptTcpClient();
}
catch
{
return;
}
stream = client.GetStream();
Listen:
while (isWork)
{
try
{
if (!client.Connected)
ReceiveDataFromHard();
byte[] data = new byte[1044];
if (stream.CanRead)
Thread.Sleep(20);
int i = stream.Read(data, 0, data.Length);//两批读取数据有间隔时,第二批数据读不到,阻塞。
if (data.checkData())//数据有效
{
//。。。。。
}
else //无效数据
{
//。。。。。
}
Thread.Sleep(500);
}
}
catch(IOException ioexception)
{
isWork = true;
stream.Close();
client.Close();
listener.Stop();
ReceiveDataFromHard();
}
}
stream.Close();
client.Close();
listener.Stop();
}
}