namespace ElementalGame.Networking
{
using System;
using System.Net.Sockets;
using System.IO ;
using System.ComponentModel ;
///
/// Client for network based chat program.
///
public class Client
{
//Define the components...
private TcpClient myclient;
private NetworkStream networkStream;
private StreamReader streamReader;
private StreamWriter streamWriter;
///
/// Open a network connection.
///
/// Host name of server.
/// Port to connect to at server.
public void OpenConnection(string hostname, int port)
{
try
{
myclient = new TcpClient(hostname, port);
}
catch
{
Console.WriteLine("Failed to connect to server at " + hostname + ":" + port );
return;
}
//get a Network stream from the server
networkStream = myclient.GetStream();
streamReader = new StreamReader(networkStream);
streamWriter = new StreamWriter(networkStream);
}
///
/// Write to the network connection.
///
/// Text to write to network.
public void Write(string message)
{
try
{
Console.WriteLine("Client Send:");
streamWriter.WriteLine(message);
streamWriter.Flush();
}
catch (Exception ee)
{
Console.WriteLine("Exception sending to Server:" + ee.ToString());
}
}
///
/// Read from the network connection.
///
/// Text read from network.
public string Read()
{
string s;
try
{
s = streamReader.ReadLine();
Console.WriteLine("Client Read:");
Console.WriteLine(s);
return s;
}
catch (Exception ee)
{
Console.WriteLine("Exception reading from Server:" + ee.ToString());
return null;
}
}
///
/// Close the network connection.
///
public void CloseConnection()
{
//close all streams...
//streamReader.Close();
//streamWriter.Close();
//networkStream.Close();
}
}
}