创建TCP / IP服务器的窗口服务 - 聊天应用程序

时间:2018-06-10 16:22:06

标签: c# winforms windows-services tcp-ip tcplistener

我有一个客户端和一个使用TCP / IP协议在网络中通信的服务器。每当我在Visual Studio中启动应用程序时。我有一个按钮 StartListening ,用于启动服务器并侦听客户端请求。

现在我尝试在窗口服务中创建StartListening按钮,而不需要点击按钮进行收听。

这是服务器代码:

protected override void OnStart(string[] args)
{
    Thread thread = new Thread(StartListening);
}

public void StartListening()
{
    IPAddress ipAddress = IPAddress.Parse("127.0.0.1");
    int nPort = 8001;
    TcpListener tcpListener = new TcpListener(ipAddress,nPort);
    tcpListener.Start();

    byte[] bytes = new byte[256];

    while (true)
    {
        Socket socket = tcpListener.AcceptSocket();

        int res = socket.Receive(bytes);
        ASCIIEncoding asen = new ASCIIEncoding();
        string str = asen.GetString(bytes);
        //logic

        socket.Close();
    }
}

注意://logic上面的代码中,我应该将服务器与客户端进行通信的内容是什么?

2 个答案:

答案 0 :(得分:1)

我认为两个线程无法正常工作,因为虽然True是线程,实际上两个线程在同一时间不起作用,代码可能会解决您的问题

mypkg

答案 1 :(得分:1)

回复您的客户:socket.Send(asen.GetBytes("reply"));