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(); } } }