小编Pil*_*ren的帖子

Windows 服务中的 TCP IP 侦听器

我正在尝试创建一个需要在后台运行并侦听传入流量的 Windows 服务(正常和常规的 TCP 侦听器)

我的代码是:

private TcpListener server;

public void startServer()
    {
       // EventLog.WriteEntry(source, "connected on: " + ipAddress.ToString() + " port: " + Service1.Port.ToString());

        server = new TcpListener(IPAddress.Parse("127.0.0.1"), Service1.Port);

         server.Start();
        while (true)
        {
          var client = server.AcceptTcpClient();


            new Thread(work).Start(client);

        }

 public void work(object client)
    {
        string msg = null;
        var clientLocal = (TcpClient)client;


            using (NetworkStream ns = clientLocal.GetStream())
            using (StreamReader sr = new StreamReader(ns))
            {
            byte[] msgFullArray = new UTF8Encoding(true).GetBytes(msg);
            fs.Write(msgFullArray, 0, msg.Length);
            }
Run Code Online (Sandbox Code Playgroud)

现在,如果您根本不看工作方法,因为每当我启动我的服务时,每当我尝试在我的服务中启动它时它都会冻结:

 var client = …
Run Code Online (Sandbox Code Playgroud)

c# windows-services installutil tcplistener tcpclient

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