TCP IP port d'écoute dans le Service windows
Je suis en train de créer un service windows qui doit s'exécuter en arrière-plan et d'écouter le trafic entrant (normale et régulière d'écoute TCP)
mon code est:
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);
}
maintenant, si vous ne regardez pas à la méthode de travail à tous, comme à chaque fois que je commence mon service il gèle à chaque fois que j'essaie de le lancer à mon :
var client = server.AcceptTcpClient();
sens de mon service n'est jamais à utiliser le Fil ou ma méthode de Travail..
je peux voir à partir de la précédente journalisation qu'il entre dans ma boucle while et puis juste à temps le service
- Pas clair ce que l'appel de
startServer
. Si c'est être appelé directement par votreOnStart
méthode, qui est un problème. Comme vous l'avez observé,AcceptTcpClient
blocs jusqu'à ce qu'un client s'affiche, mais le filOnStart
est appelée sur ne vous appartient pas et vous ne devriez pas le bloquer. - eh bien vous avez raison que ma méthode onstart appelle "serveur.startServer();" mais je ne suis pas sûr de comprendre comment résoudre le problème alors?
Vous devez vous connecter pour publier un commentaire.
Dans votre
OnStart
Méthode, vous devez instancier une classe de serveur.qui est chargé de gérer les connexions au serveur par la création d'une nouvelle
Thread
(alors que c'est un non-processus de blocage)pour chaque socket qu'il sera à l'écoute par un
TCPListener
.Ici, c'est la pleine projet d'article.