我正在尝试创建一个需要在后台运行并侦听传入流量的 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)