Моя цель - отправлять простые текстовые данные, а также сложные данные в клиентское приложение, используя сокет. Это часть моего кода
private void button1_Click(object sender, EventArgs e)
{
byte[] data;
data = Encoding.ASCII.GetBytes("Welcome!!!");
ns.Write(data, 0, data.Length);
ns.Flush();
List<Person> list = new List<Person>();
for (int a = 0; a < 5; a++)
{
Person person = new Person();
person.Name = textBox1.Text;
person.Age = int.Parse(textBox2.Text);
list.Add(person);
}
BinaryFormatter formatter = new BinaryFormatter();
for (int a = 0; a < 5; a++)
{
formatter.Serialize(ns, list[a]);
}
ns.Flush();
}
, и на клиенте я пишу этот код, чтобы добавить все данные вlistview
private void AddToListView()
{
while (true && ns.DataAvailable)
{
byte[] data = new byte[1024];
int recv;
recv = ns.Read(data, 0, data.Length);
textFromServer = Encoding.ASCII.GetString(data, 0, recv);
ns.Flush();
listView1.Items.Add(textFromServer);
temp = formatter.Deserialize(ns) as Person;
ns.Flush();
listView1.Items.Add(temp.Name);
listView1.Items.Add(temp.Age);
}
}
но когда я отлаживаю приложение, ничего не происходит ... если я удаляю процесс readstream (networkstream), приложение запускается красиво ... проблема в том, что мне нужно не только отправлятьпользовательский объект, но также и простой текст для клиента. Кто-нибудь может мне помочь, пожалуйста?
Возможно ли одновременно использовать networkstream.read () и binaryformatter.deserialize () ?? или мы имеемвыбрать один из них?
я имею в виду, когда просто для отправки / получения простого текста мы используем networkstream.read () / write () ,, а для сложного объекта мы используем serialize / deserialize..is itвозможно ??