4Manuals

  • PDF Cloud HOME

有什么方法可以检查套接字连接是否可用? Download

    获取Hough线的交点OpenCV C ++ 如何将字符串“ text1”设置为包含项目text1,text2,test3的组合框的选定项目? 为什么System.Net.Mail.MailAddress构造函数在域部分中解析带有斜杠“ /”的电子邮件? Android 10,API29:在应用程序文件夹中使用C ++库编写文件会使应用程序崩溃 Unity-LineRenderer没有出现在版本(2D)上 按下按钮后,电话中未显示通知 ASP.net,使用WebConfig httpErrors重定向到区域内的控制器不起作用 获取会议室详细信息 我们如何将参数Line转换为Station? 网络核心:查找实体框架核心的主键和反射

我有以下代码:

class MyServer
{

    TcpListener myList;
    Socket socket;

    public MyServer(string ip)
    {
        this.myList = new TcpListener(ip, 12001);
        this.myList.Start();
        Thread t = new Thread(new ThreadStart(GetConnection));
        t.Start();
    }

    public void GetConnection()
    {
        try
        {
            socket = myList.AcceptSocket(); //(1)
        }
        catch
        {
            Console.WriteLine("Error");
        }
    }

    public void StopListening()
    {
        this.myList.Stop();
    }
}

它运行良好:我启动服务器,如果我“后悔”,我会调用StopListening()(在建立连接之前!),并且由于我关闭myList,所以(1)失败了。

有没有任何方法可以不用try {} catch {}编写此代码-将GetConnection()重写为:

public void GetConnection()
{
    while ( myList is open && there is no connection)
    {
         //do nothing
    }
    if (myList is open)
    {
         this.socket = myList.AcceptConnection();
    }
}

还是另一种方式?谢谢。

0 个答案:

没有答案



Similar searches
    有条件的熊猫,包含,替换 Samsung RS2556SH Refrigerator User Manual 我正在从acceleratorservices调用自定义插件页面,但它像本地主机:9002 / acceleratorservices / sop-mock / process一样返回 Samsung SR-39NXA Refrigerator User Manual Samsung SRS536NP Refrigerator User Manual