Я пытаюсь записать текст в текстовый файл:
byte[] b = new byte[100];
int k = s.Receive(b);
Console.WriteLine("Recieved...");
for (int i = 0; i < k; i++)
{
Console.Write(Convert.ToChar(b[i]));
//TextWriter tw = new StreamWriter("output.txt");
//tw.WriteLine(Convert.ToChar(b[i]));
}
Хотя метод Console.Write работает отлично, и вывод текста отображается на экране, но когда я использую метод TextWriter, приложение выдает сотни ошибок (продолжается) и ничего не выводит в указанный файл вывода
Есть ли другой способ получить вывод "Console.Write (Convert.ToChar (b [i])));" в текстовый файл?
Ниже приведен пример ошибок:
Сервер работает на порту 8111 ... Локальная конечная точка
: 172.16.0.37: 8111 Ожидание соединения ..... Соединение принято
от 172.16.0.37:59307 Получено ... // Ошибка ..... при
System.IO .__ Error.WinIOError (Int32 errorCode, String MaybeFullPath)
в System.IO.FileStream.Init (Строковый путь, режим FileMode, FileAccess
доступ, права Int32, логические права использования, общий доступ к FileShare, Int32
bufferSize, опции FileOptions, SECURITY_ATTRIBUTES secAttrs, String
msgPath, логическое bFromProxy) в System.IO.FileStream..ctor (String
путь, режим FileMode, доступ к FileAccess, общий доступ к FileShare, Int32
Параметры bufferSize, FileOptions) в
System.IO.StreamWriter.CreateFile (String path, Boolean append) в
System.IO.StreamWriter..ctor (Строковый путь, логическое добавление, кодировка
кодирование, Int32 bufferSize) в System.IO.StreamWriter..ctor (String
путь) в IntegServer.Main () в
C: \ Users \ Limited \ Desktop \ IntegClient \ IntegServer \ IntegServer \ Program.cs: линия
38 Ошибка ..... в System.Net.Sockets.Socket.DoBind (EndPoint
endPointSnapshot, SocketAddress socketAddress) в
System.Net.Sockets.Socket.Bind (EndPoint localEP) в
System.Net.Sockets.TcpListener.Start (отставание Int32) в
System.Net.Sockets.TcpListener.Start () в IntegServer.Main () в
C: \ Users \ Limited \ Desktop \ IntegClient \ IntegServer \ IntegServer \ Program.cs: линия
21 Ошибка ..... в System.Net.Sockets.Socket.DoBind (EndPoint
endPointSnapshot, SocketAddress socketAddress) в
System.Net.Sockets.Socket.Bind (EndPoint localEP) в
System.Net.Sockets.TcpListener.Start (отставание Int32) в
System.Net.Sockets.TcpListener.Start () в IntegServer.Main () в
C: \ Users \ Limited \ Desktop \ IntegClient \ IntegServer \ IntegServer \ Program.cs: линия
21 Ошибка ..... в System.Net.Sockets.Socket.DoBind (EndPoint
endPointSnapshot, SocketAddress socketAddress) в
System.Net.Sockets.Socket.Bind (EndPoint localEP) в
System.Net.Sockets.TcpListener.Start (отставание Int32) в
System.Net.Sockets.TcpListener.Start ()
Полный код следующий:
try
{
IPAddress ipAd = IPAddress.Parse("172.16.0.37"); //use local m/c IP address, and use the same in the client
/* Initializes the Listener */
TcpListener myList = new TcpListener(ipAd, 8111);
/* Start Listeneting at the specified port */
myList.Start();
Console.WriteLine("The server is running at port 8111...");
Console.WriteLine("The local End point is :" + myList.LocalEndpoint);
Console.WriteLine("Waiting for a connection.....");
Socket s = myList.AcceptSocket();
Console.WriteLine("Connection accepted from " + s.RemoteEndPoint);
byte[] b = new byte[100];
int k = s.Receive(b);
Console.WriteLine("Recieved...");
using (var txt = File.OpenWrite("output.txt"))
{
for (int i = 0; i < k; i++)
{
Console.Write(Convert.ToChar(b[i]));
txt.WriteLine(Convert.ToChar(b[i]));
}
}
ASCIIEncoding asen = new ASCIIEncoding();
s.Send(asen.GetBytes("The string was recieved by the server."));
Console.WriteLine("\nSent Acknowledgement to Client");
/* clean up */
s.Close();
myList.Stop();
}
catch (Exception e)
{
Console.WriteLine("Error..... " + e.StackTrace);
}
// Loop the process
loop();
}