المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : Why I can send only one string to server-TCP



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.