小编Nat*_*ate的帖子

UDPClient接收方法不在服务中工作

我一直在用C#试验UDP发送和接收,并且有一个奇怪的问题.代码在控制台应用程序中工作正常,但当我尝试在服务中使用完全相同的代码时,client.ceceive方法被阻止.服务正常运行,不会中止,我有记录写入文本文件,所以我知道它到达接收.有人有主意吗?代码如下......

public partial class Service1 : ServiceBase
{
    private bool serviceStarted = false;
    Thread listenerThread;

    public Service1()
    {
        InitializeComponent();      
    }

    protected override void OnStart(string[] args)
    {
        serviceStarted = false;
        WriteLog("UDPListener Service Starting");

        ThreadStart thread = new ThreadStart(StartListening);
        listenerThread = new Thread(thread);

        serviceStarted = true;
        listenerThread.Start();
    }

    protected override void OnStop()
    {
        WriteLog("UDPListener Service Stopping");

        serviceStarted = false;
        listenerThread.Join(new TimeSpan(0, 0, 5));
    }

    private void StartListening()
    {
        WriteLog("Worker thread spawned.");

        UdpClient client = new UdpClient(40000);

        while (serviceStarted)
        {
            WriteLog("Service is started. …
Run Code Online (Sandbox Code Playgroud)

c# service udpclient

2
推荐指数
1
解决办法
3500
查看次数

标签 统计

c# ×1

service ×1

udpclient ×1