使用任务计划程序从构造函数自动建立UDP连接

时间:2014-08-30 01:21:57

标签: c# windows udp task scheduler

在我的应用程序的主要形式的构造函数中:

    public GUI()
    {
        InitializeComponent();

        Connect();
    }

这是Connect():

    public void Connect()
    {
        string IP = "###.###.#.#"
        int port = 4000;

        credentials_ipep = new IPEndPoint(IPAddress.Parse(IP), port);

        if (credentials_socket == null)
        {
            credentials_socket = new UdpClient(port);
        }

        Byte[] sendBytes = Encoding.ASCII.GetBytes("LOGIN");
        credentials_socket.Send(sendBytes, sendBytes.Length, credentials_ipep);

        string received;

        try
        {
            received = Encoding.ASCII.GetString(credentials_socket.Receive(ref credentials_ipep));
            MessageBox.Show("Yay Server Connected!");
        }
        catch (SocketException)
        {
            MessageBox.Show("Server Not Running!");
            return;
        }
    }

该计划的主要方法是:

    static void Main(string[] args) 
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new GUI());
    }

我的应用程序停留在received = Encoding.ASCII.GetString(credentials_socket.Receive(ref credentials_ipep));

当我从构造函数中删除Connect(),而是在按钮上单击主窗体(GUI)上调用它时,代码工作正常,我能够看到消息框告诉我服务器是否正在运行或不。

是否有某种网络初始化需要在我没有看到的构造函数完成时完成?我想在构造函数中放置Connect()的原因是我可以从Windows任务计划程序启动应用程序,而不是手动单击Connect()

0 个答案:

没有答案