C# Programming
10-11-2009, 04:40 AM
Hi.
I have problems..when i send string from client to server, server recieves string and sends it back to client. Works fine for first time. But now i don't know why i can't send it again, lets say different..
Here is code for server:
public server()
{
InitializeComponent();
}
private void server_Load(object sender, EventArgs e)
{
IPAddress ipAd = IPAddress.Parse("127.0.0.1");
TcpListener myList = new TcpListener(ipAd, int.Parse("1111"));
myList.Start();
try
{
Socket socketForClient = myList.AcceptSocket();
Console.WriteLine("Odjemalec povezan " + socketForClient.RemoteEndPoint.ToString());
NetworkStream networkStream = new NetworkStream(socketForClient);
StreamWriter streamWriter = new StreamWriter(networkStream);
StreamReader streamReader = new StreamReader(networkStream);
line = streamReader.ReadLine();
Console.WriteLine("Sprejeto: " + line);
textBox1.Text = line;
streamWriter.WriteLine(line);
Console.WriteLine("Poslano: " + line);
streamWriter.Flush();
Console.WriteLine();
//socketForClient.Close();
//myList.Stop();
}
catch (Exception x)
{
Console.WriteLine("Error..... " + x.StackTrace);
}
}
Here is code for my server
private string _ip = String.Empty;
private string _port = String.Empty;
private int izbira;
string novo;
TcpClient odjemalec = new TcpClient();
public client(string ip, string port)
{
InitializeComponent();
this._ip = ip;
this._port = port;
}
private void client_Load(object sender, EventArgs e)
{
try
{
IPAddress novip = IPAddress.Parse(_ip);
Console.WriteLine("Povezujem ...");
odjemalec.Connect(novip, int.Parse(_port));
Console.WriteLine("Povezan");
Console.Write("Vpi?i besedilo: ");
String line = Console.ReadLine();
//odjemalec.Close();
}
catch (Exception x)
{
Console.WriteLine("Napaka: " + x.Message);
}
}
private void poslji()
{
if (comboBox1.SelectedIndex == 0) novo = "1";
if (comboBox1.SelectedIndex == 1) novo="2";
//novo = textbox();
NetworkStream networkStream = odjemalec.GetStream();
StreamReader streamReader = new StreamReader(networkStream);
StreamWriter streamWriter = new StreamWriter(networkStream);
streamWriter.WriteLine(novo);
Console.WriteLine("Po?iljam sporo?ilo...");
streamWriter.Flush();
string s = streamReader.ReadLine();
textBox1.Text = s;
Console.WriteLine("Prejemam sporo?ilo...");
Console.WriteLine(s);
//streamReader.Close();
//streamWriter.Close();
//networkStream.Close();
//odjemalec.Close();
}
string textbox()
{
novo = textBox1.Text;
return novo;
}
private void button1_Click(object sender, EventArgs e)
{
poslji();
}
Please help me that i would be able to send more than one time.
I have problems..when i send string from client to server, server recieves string and sends it back to client. Works fine for first time. But now i don't know why i can't send it again, lets say different..
Here is code for server:
public server()
{
InitializeComponent();
}
private void server_Load(object sender, EventArgs e)
{
IPAddress ipAd = IPAddress.Parse("127.0.0.1");
TcpListener myList = new TcpListener(ipAd, int.Parse("1111"));
myList.Start();
try
{
Socket socketForClient = myList.AcceptSocket();
Console.WriteLine("Odjemalec povezan " + socketForClient.RemoteEndPoint.ToString());
NetworkStream networkStream = new NetworkStream(socketForClient);
StreamWriter streamWriter = new StreamWriter(networkStream);
StreamReader streamReader = new StreamReader(networkStream);
line = streamReader.ReadLine();
Console.WriteLine("Sprejeto: " + line);
textBox1.Text = line;
streamWriter.WriteLine(line);
Console.WriteLine("Poslano: " + line);
streamWriter.Flush();
Console.WriteLine();
//socketForClient.Close();
//myList.Stop();
}
catch (Exception x)
{
Console.WriteLine("Error..... " + x.StackTrace);
}
}
Here is code for my server
private string _ip = String.Empty;
private string _port = String.Empty;
private int izbira;
string novo;
TcpClient odjemalec = new TcpClient();
public client(string ip, string port)
{
InitializeComponent();
this._ip = ip;
this._port = port;
}
private void client_Load(object sender, EventArgs e)
{
try
{
IPAddress novip = IPAddress.Parse(_ip);
Console.WriteLine("Povezujem ...");
odjemalec.Connect(novip, int.Parse(_port));
Console.WriteLine("Povezan");
Console.Write("Vpi?i besedilo: ");
String line = Console.ReadLine();
//odjemalec.Close();
}
catch (Exception x)
{
Console.WriteLine("Napaka: " + x.Message);
}
}
private void poslji()
{
if (comboBox1.SelectedIndex == 0) novo = "1";
if (comboBox1.SelectedIndex == 1) novo="2";
//novo = textbox();
NetworkStream networkStream = odjemalec.GetStream();
StreamReader streamReader = new StreamReader(networkStream);
StreamWriter streamWriter = new StreamWriter(networkStream);
streamWriter.WriteLine(novo);
Console.WriteLine("Po?iljam sporo?ilo...");
streamWriter.Flush();
string s = streamReader.ReadLine();
textBox1.Text = s;
Console.WriteLine("Prejemam sporo?ilo...");
Console.WriteLine(s);
//streamReader.Close();
//streamWriter.Close();
//networkStream.Close();
//odjemalec.Close();
}
string textbox()
{
novo = textBox1.Text;
return novo;
}
private void button1_Click(object sender, EventArgs e)
{
poslji();
}
Please help me that i would be able to send more than one time.