действительно вам нужна помощь.C# tcp socket server client connection
Мой проект состоит в том, чтобы подключить два ПК по кабелю и использовать разъем tcp отправить строку в форме текстового окна клиента на сервер. проблема в том, что i может просто отправить одну строку, тогда соединение закроется.
код клиента (C#): конечно, в попытке поймать пути:
String str = textBox2.Text;
Stream stm = tcpclnt.GetStream();
ASCIIEncoding asen = new ASCIIEncoding();
byte[] ba = asen.GetBytes(str);
textBox1.Text="Sending...";
stm.Write(ba,0,ba.Length);
byte[] bb = new byte[100];
int k = stm.Read(bb,0,100);
for (int i = 0;i < k; i++)
{
Console.Write(Convert.ToChar(bb[i]));
}
tcpclnt.Close();
//////////////
код сервера: также в попытке поймать пути:
int k = 0;
byte[] b = new byte[100];
for (; ;)
{
for (int i = 0; i < 100000; i++)
{ }
k = s.Receive(b);
MessageBox.Show(k + "");
textBox1.Text = "Recieved...";
for (int i = 0; i < k; i++)
{
textBox2.Text = textBox2.Text + Convert.ToChar(b[i]);
}
MessageBox.Show(k + "");
ASCIIEncoding asen = new ASCIIEncoding();
s.Send(asen.GetBytes("Automatic message:" + "String received by server!"));
textBox1.Text = "\n Automatic message sent!";
MessageBox.Show(k + "");
s.Close();
}
мой вопрос: могу ли я сделать цикл на сервере для отправки не только одной строки, мне нужно отправить много строк без закрытия соединения.?
примечание: клиент и сервер будут выполнены каждый после нажатия кнопки в каждой форме.
примечание: соединение на некоторых портах будет установлено и будет выполнено в форме загрузки.
Да, вы можете сделать петлю и отправить столько, сколько вы хотите. Вам не нужно закрывать сокет, пока вы не закончите. –
Я не знаю, как, я делаю петлю на сервере, но k = s.recieve (b) застрял. –