/// <summary> /// Initializes a new instance of the <see cref="file_server"/> class. /// Opretter en socket. /// Venter på en connect fra en klient. /// Modtager filnavn /// Finder filstørrelsen /// Kalder metoden sendFile /// Lukker socketen og programmet /// </summary> private file_server() { TcpListener serverSocket = new TcpListener(new IPEndPoint(IPAddress.Any, PORT)); TcpClient clientSocket = default(TcpClient); serverSocket.Start(); Console.WriteLine(" >> Server Started"); while (true) { try { clientSocket = serverSocket.AcceptTcpClient(); NetworkStream networkStream = clientSocket.GetStream(); string dataFromClient = LIB.readTextTCP(networkStream); Console.WriteLine(" >> Data from client - " + dataFromClient); if (LIB.check_File_Exists(dataFromClient) != 0) { FileInfo fileInfo = new FileInfo(dataFromClient); long fileSize = fileInfo.Length; LIB.writeTextTCP(networkStream, fileSize.ToString()); sendFile(dataFromClient, fileSize, networkStream); } else { LIB.writeTextTCP(networkStream, "" + 0); } networkStream.Flush(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } } clientSocket.Close(); serverSocket.Stop(); }
/// <summary> /// Initializes a new instance of the <see cref="file_server"/> class. /// Opretter en socket. /// Venter på en connect fra en klient. /// Modtager filnavn /// Finder filstørrelsen /// Kalder metoden sendFile /// Lukker socketen og programmet /// </summary> private file_server() { // Starts server and accepts a client Console.WriteLine("Listening for client .."); TcpListener serverSocket = new TcpListener(IPAddress.Any, PORT); TcpClient clientSocket = default(TcpClient); serverSocket.Start(); clientSocket = serverSocket.AcceptTcpClient(); Console.WriteLine("Accepted connection from client"); // Get the network file stream NetworkStream clientStream = clientSocket.GetStream(); string filename = LIB.readTextTCP(clientStream); long fileSize = LIB.check_File_Exists(filename); while (fileSize == 0) { string errorMsg = "File '" + filename + "' not found"; Console.WriteLine(errorMsg); LIB.writeTextTCP(clientStream, fileSize.ToString()); filename = LIB.readTextTCP(clientStream); fileSize = LIB.check_File_Exists(filename); } Console.WriteLine("Filename: " + filename); Console.WriteLine("Size: " + fileSize); LIB.writeTextTCP(clientStream, fileSize.ToString()); sendFile(filename, clientStream); clientSocket.Close(); serverSocket.Stop(); }
private file_server() { Socket ourSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); ourSocket.Bind(new IPEndPoint(IPAddress.Any, PORT)); while (true) { ourSocket.Listen(0); Socket acceptSocket = ourSocket.Accept(); Console.WriteLine("Someone connected!"); NetworkStream myNetworkStream = new NetworkStream(acceptSocket); string ReceivedFilePath = LIB.readTextTCP(myNetworkStream); long fileSize = LIB.check_File_Exists(ReceivedFilePath); Console.WriteLine($"Received file path: {ReceivedFilePath}"); Console.WriteLine($"Filesize: {fileSize} bytes"); if (fileSize == 0) { Console.WriteLine("Could not find file."); LIB.writeTextTCP(myNetworkStream, "Error: Could not find file."); } else { sendFile(ReceivedFilePath, fileSize, myNetworkStream); } acceptSocket.Close(); } //ourSocket.Close(); }
/// <summary> /// Initializes a new instance of the <see cref="file_server"/> class. /// Opretter en socket. /// Venter på en connect fra en klient. /// Modtager filnavn /// Finder filstørrelsen /// Kalder metoden sendFile /// Lukker socketen og programmet... IKKE /// </summary> private file_server() { String dataDir = "/root/ServerData/"; var serverSocket = new TcpListener(IPAddress.Any, PORT); //Listens on PORT var clientSocket = default(TcpClient); serverSocket.Start(); Console.WriteLine("Server started"); clientSocket = serverSocket.AcceptTcpClient(); Console.WriteLine("Accept connection from client"); var networkStream = clientSocket.GetStream(); //Open a stream String fileName; long fileSize; do { Console.WriteLine("Reading filename"); fileName = LIB.readTextTCP(networkStream); Console.WriteLine("Filename: " + fileName); fileSize = LIB.check_File_Exists(dataDir + fileName); Console.WriteLine("Filepath: " + dataDir + fileName); Console.WriteLine("Filesize: " + fileSize); LIB.writeTextTCP(networkStream, fileSize.ToString("0")); } while (fileSize == 0); sendFile(dataDir + fileName, fileSize, networkStream); //Cleaning clientSocket.Close(); serverSocket.Stop(); Console.WriteLine("Exit"); }
private file_server() { var localAddress = IPAddress.Parse("0.0.0.0"); Console.WriteLine("CHOOSE IP ADDRESS FOR THE SERVER..."); Console.WriteLine("1. Default Local Host IP (127.0.0.1)"); Console.WriteLine("2. Default Remote Host IP (10.0.0.1)"); Console.WriteLine("3. Enter Custom IP Address.\n"); Console.Write("Your choice: "); var choice = int.Parse(Console.ReadLine()); switch (choice) { case 1: localAddress = IPAddress.Parse("127.0.0.1"); Console.WriteLine("Server IP address is now: 127.0.0.1\n"); break; case 2: localAddress = IPAddress.Parse("10.0.0.1"); Console.WriteLine("Server IP address is now: 10.0.0.1\n"); break; case 3: Console.Write("Type custom IP address here: "); while (!IPAddress.TryParse(Console.ReadLine(), out localAddress)) { Console.WriteLine("Invalid IP address, please try again.\n"); Console.Write("Type custom IP address here: "); } Console.WriteLine("Server IP Address is now: " + localAddress); break; } try { var server = new TcpListener(localAddress, PORT); while (true) { server.Start(); Console.WriteLine("Server: Started!"); Console.WriteLine("Server: Waiting for new connection..."); var client = server.AcceptTcpClient(); Console.WriteLine("Server: Client connected!"); // Modtager besked fra Client: var stream = client.GetStream(); // Reads data from the client and prints it to console: var fileName = LIB.readTextTCP(stream); Console.WriteLine($"Stream received: {fileName}"); // Checks to see if file exists and returns its size: var fileSize = LIB.check_File_Exists(fileName); LIB.writeTextTCP(stream, fileSize.ToString()); if (fileSize != 0) { SendFile(fileName, fileSize, stream); } else { Console.WriteLine("File doesn't exist!"); } client.Close(); server.Stop(); } } catch (SocketException e) { Console.WriteLine($"Socket exception: {e}"); Console.ReadKey(); // Does server.Stop() run? Or does this potentially create memory leak??? } }