Socket accepte plusieurs clients, mais je ne parviens pas à ouvrir le fichier.

Fondamentalement, j’ai écrit ce programme pour vérifier les chaînes. J’ai utilisé la méthode socket pour cela.

Le problème est que je ne parviens pas à comprendre comment et où ouvrir exactement le fichier dans ce programme et rechercher les chaînes. Au lieu de donner la chaîne de recherche dans le programme, je souhaite que le client puisse taper / rechercher les chaînes de son choix. Et lorsque je lance le programme, j’ai besoin de la sortie sur l’écran du client.

Comment puis-je améliorer ce programme? Quelqu’un pourrait-il m’aider s’il vous plaît avec le code?

Ceci est mon programme:

class Program { static void Main(ssortingng[] args) { TcpListener serversocket = new TcpListener(8888); TcpClient clientsocket = default(TcpClient); serversocket.Start(); Console.WriteLine(">> Server Started"); while (true) { clientsocket = serversocket.AcceptTcpClient(); Console.WriteLine("Accept Connection From Client"); LineMatcher lm = new LineMatcher(clientsocket); Thread thread = new Thread(new ThreadStart(lm.Run)); thread.Start(); Console.WriteLine("Client connected"); } Console.WriteLine(" >> exit"); Console.ReadLine(); clientsocket.Close(); serversocket.Stop(); } } public class LineMatcher { private static Regex _regex = new Regex("not|http|console|application", RegexOptions.Comstackd | RegexOptions.IgnoreCase | RegexOptions.CultureInvariant); private TcpClient _client; public LineMatcher(TcpClient client) { _client = client; } public void Run() { try { using (var reader = new StreamReader(_client.GetStream())) { ssortingng line; int lineNumber = 0; while (null != (line = reader.ReadLine())) { lineNumber += 1; foreach (Match match in _regex.Matches(line)) { Console.WriteLine("Line {0} matches {1}", lineNumber, match.Value); } } } } catch (Exception ex) { Console.Error.WriteLine(ex.ToSsortingng()); } Console.WriteLine("Closing client"); _client.Close(); } } 

Voici un client de démonstration simple qui fonctionne pour moi:

 using System; using System.IO; using System.Net.Sockets; using System.Text; namespace AClient { class Client { static void Main() { using (var client = new TcpClient("localhost", 8888)) { Console.WriteLine(">> Client Started"); using (var r = new StreamReader(@"E:\input.txt", Encoding.UTF8)) using (var w = new StreamWriter(client.GetStream(), Encoding.UTF8)) { ssortingng line; while (null != (line = r.ReadLine())) { w.WriteLine(line); w.Flush(); // probably not necessary, but I'm too lazy to find the docs } } Console.WriteLine(">> Goodbye"); } } } }