namespace DarkWynter.Engine.Networking { using System; using System.Net.Sockets; using System.IO ; using System.ComponentModel; /// <summary> /// Client for network based chat program. /// </summary> public class Client { //Define the components... private TcpClient myclient; private NetworkStream networkStream; private StreamReader streamReader; private StreamWriter streamWriter; /// <summary> /// Open a network connection. /// </summary> /// <param name="hostname">Host name of server.</param> /// <param name="port">Port to connect to at server.</param> 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); } /// <summary> /// Write to the network connection. /// </summary> /// <param name="message">Text to write to network.</param> 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()); } } /// <summary> /// Read from the network connection. /// </summary> /// <returns>Text read from network.</returns> public string Read() { string s; try { s = streamReader.ReadLine(); Console.WriteLine(s); return s; } catch (Exception ee) { Console.WriteLine("Exception reading from Server:" + ee.ToString()); return null; } } /// <summary> /// Close the network connection. /// </summary> public void CloseConnection() { //close all streams... //streamReader.Close(); //streamWriter.Close(); //networkStream.Close(); } } }