1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
|
/*******************************************************************************
copyright: Copyright (c) 2006 UWB. All rights reserved
license: BSD style: $(LICENSE)
version: Initial release: June 2006
Tango Mods by Lester L Martin: August 2008
author: UWB
*******************************************************************************/
module tango.net.ftp.Telnet;
private
{
import tango.core.Exception;
import tango.io.stream.Lines;
import tango.net.device.Socket;
}
class Telnet
{
/// The Socket that is used to send commands.
Socket socket_;
Lines!(char) iterator;
abstract void exception(string message);
/// Send a line over the Socket Conduit.
///
/// buf = the bytes to send
void sendline(const(void)[] buf)
{
sendData(buf);
sendData("\r\n");
}
/// Send a line over the Socket Conduit.
///
/// buf = the bytes to send
void sendData(const(void)[] buf)
{
socket_.write(buf);
}
/// Read a CRLF terminated line from the socket.
///
/// Returns: the line read
const(char)[] readLine()
{
const(char)[] to_return;
iterator.readln(to_return);
return to_return;
}
/************************************************************************
* Find a server which is listening on the specified port.
*
* Params:
* hostname = the hostname to lookup and connect to
* port = the port to connect on
* Returns:
the Socket instance used
* Since: 0.99.8
*/
Socket findAvailableServer(const(char)[] hostname, int port)
{
socket_ = new Socket;
socket_.connect(hostname, port);
iterator = new Lines!(char)(socket_);
return socket_;
}
}
|