このコードは、ファイルから特定の文字列をチェックするために作成しました。現在、文字列をチェックしています。しかし、どうすれば「存在します」という返信をクライアントに送り返すことができますか?サーバー側のプログラムには、すべてのコードが含まれている必要があります。また、複数のクライアントを受け入れます。
このプログラムの手順は次のとおりです。
基本的に、クライアントがファイルに特定の文字列(単語)があるかどうかを確認したい場合、クライアントはこのコードをtelnetのポートを介して接続します。彼は(telnetで)検索したい文字列を入力し、サーバー側に送信します。そして、このサーバー側プログラムは、ファイルから彼をチェックします。また、存在する場合は「文字列はファイルに存在します」というメッセージをクライアントに送り返し、存在しない場合は「存在しない」というメッセージを送信する必要があります。
検索文字列( "hello")はこのプログラムにあります。クライアントがクライアント側(telnet)から検索できるようにするにはどうすればよいですか?これは私がたくさんの助けとチュートリアルでやってきたところです。誰か助けてくれませんか?
編集済み-クライアントに返信するようにコードを変更しました。私が今知っておく必要があるのは、クライアントがクライアント側(telnet)を介して検索(検索したい単語を入力)できるようにするにはどうすればよいですか?どんな助けでも本当にありがたいです。コードも更新しました。
ありがとうございました。
class Program
{
static void Main(string[] args)
{
IPAddress ipad = IPAddress.Parse("127.0.0.1");
TcpListener serversocket = new TcpListener(ipad, 8888);
TcpClient clientsocket = default(TcpClient);
Byte[] bytes = new Byte[256];
serversocket.Start();
Console.WriteLine(">> Server Started");
while(true)
{
clientsocket = serversocket.AcceptTcpClient();
Console.WriteLine("Accepted 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
{
public string fileName = "c:/myfile2.txt";
private TcpClient _client;
public LineMatcher(TcpClient client)
{
_client = client;
}
public void Run()
{
byte[] data = new byte[256];
NetworkStream strm = _client.GetStream();
try
{
using (var r = new StreamReader("c:/myfile2.txt"))
{
string line = "";
bool done = false;
int lineNumber = 0;
String s = r.ReadToEnd();
ASCIIEncoding encoder = new ASCIIEncoding();
while (String.IsNullOrEmpty(s))
{
data = encoder.GetBytes("There is no data in the file.");
Console.WriteLine("There is no data in the file.");
}
if (s.IndexOf("hello", StringComparison.CurrentCultureIgnoreCase) >= 0)
{
data = encoder.GetBytes("It is Present.");
}
else
{
data = encoder.GetBytes("It is not Present");
}
}
}
catch (Exception ex)
{
Console.Error.WriteLine(ex.ToString());
}
strm.Write(data, 0, data.Length);
strm.Flush();
Console.WriteLine("Closing client");
_client.Close();
}
}