110,532
社区成员
发帖
与我相关
我的任务
分享
private void ConnectToServer()
{
byte[] data = new byte[1024];
IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("192.168.31.144"), 8888);
//clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
clientTcp = new TcpClient();
try
{
clientTcp.Connect(ipep);
}
catch (SocketException ex)
{
MessageBox.Show("connect error: " + ex.Message);
return;
}
ns = clientTcp.GetStream();
while (alive) //信号量
{
int bufLen = 0;
try
{
bufLen = clientTcp.Available; //这里会一直停在这里
ns.Read(data, 0, bufLen);
if (bufLen == 0)
{
continue;
}
}
catch (Exception ex)
{
MessageBox.Show("Receive Error:" + ex.Message);
return;
}
string clientcommand = System.Text.Encoding.ASCII.GetString(data).Substring(0, bufLen);
lstClient.Items.Add(clientcommand);
}
}
bool _stopThread = false; // 是否要结束线程的标识
bool _threadOver = false; // 线程是否已经结束的标识
private void test()
{
_threadOver = false;
_stopThread = false;
System.Timers.Timer ab = new System.Timers.Timer();
ab.Interval = 1000;
ab.Elapsed += delegate
{
if (i > 5)
{
if (_threadOver) { _stopThread=true; Console.WriteLine("线程已执行停止!"); }
if (_threadOver) { Console.WriteLine("线程仍未停止!"); }
ab.Stop();
ab.Dispose();
}
};
ab.Start();
while (true)
{
if(_stopThread) break;
i++;
Console.WriteLine(i.ToString());
Thread.Sleep(1000);
}
_threadOver = true;
}