尽管有Console.ReadLine()语句和无限循环,但我的应用程序仍退出(退出代码为0)。我发现应用程序在Send()
之前退出,并且正在string message = Console.ReadLine()
我正在制作异步服务器,这是客户端。
namespace NiceClient
{
class Program
{
class Client
{
//Variables
public Client()
{
tcp = new TCP();
ConnectToServer();
}
private void ConnectToServer()
{
tcp.Connect();
}
public class TCP
{
//Variables
private bool alive = true;
public void Connect()
{
//Code
}
private void ConnectCallback(IAsyncResult _result)
{
//Code
while (alive)
{
Send();
Receive();
}
}
private void Send()
{
string message = Console.ReadLine();
sendBuffer = Encoding.ASCII.GetBytes(message);
stream.BeginWrite(sendBuffer, 0, sendBuffer.Length, null, null);;
}
private void Receive()
{
//Code
}
}
}
static void Main(string[] args)
{
Client c1 = new Client();
Console.ReadLine();
}
}
}
使您的主线程保持活动状态。您可以在声明和初始化客户端之后直接使用循环执行此操作。
public static void Main(string[] args)
{
Client c1 = new Client();
while (true)
{
// Keep your application busy
}
}
而不是无限循环,这需要您自己杀死应用程序才能中断循环,您可以根据条件(例如,监听特定的按键,然后将打破循环。