dotSITE
Форумы Work in Murano Software. Учебник по C#
новости материалы решения форумы группы настройки/о проекте

Автор: Anonymous
Тема: Socet
Дата: 7/7/2005 3:22:00 PM
Есть форма при нажатии 1-кнопки,создается поток,который слушает канал.
Если к нему кто-то connect ,то принимается сообщение.Проблема в том,что
когда передается новое сообщения у меня на работе он его принимает,а дома
показывает старые данные
(по точке останова на функции tcpListener.AcceptTcpClient() показывает просто
форму со старыми данными).
Ещё при нажатии 2-кнопки(должна закрывать приложение)форма закрывается,апроцесс остается в памяти. Помогите разовраться.

Код:
private Thread th=null;
private bool bContinue=false;
private TcpClient tcpClient;
private TcpListener tcpListener;
private NetworkStream stream;
public ListViewItem itemLV = new ListViewItem();


private void button1_Click(object sender, System.EventArgs e)
{
string remoteHost="localhost";
if(th==null)
{
if(this.textBox2.Text=="")
{
tcpListener=new TcpListener
(Dns.Resolve(Dns.GetHostName()).AddressList[0],11000);
               
      }
else
{
tcpListener=new TcpListener
(Dns.Resolve(Dns.GetHostName()).AddressList[0],System.Convert.ToInt32(this.textBox2.Text));
               
   }
            
tcpListener.Start();
bContinue=true;
th=new Thread(new ThreadStart(this.Listening));
th.Start();
this.button1.Text="Start Listening...";
            
//th=null;
   }
}



   private void Listening()
   {
    Byte[] buffer=new byte[1];
      int g=0;
      int bytes=0;
      string tmpMes="";
      string tmpMes1="";
      string oneBate="";

      while(bContinue)
      {
            
      try
      {

      tcpClient=tcpListener.AcceptTcpClient();
      this.stream=this.tcpClient.GetStream();
         }
   catch(Exception er)
      {
      MessageBox.Show(er.Message.ToString());
      }
      while(stream.DataAvailable)
      {
       bytes=stream.Read(buffer,0,buffer.Length);
               
System.Text.Encoding encAsciiRu = System.Tеxt.Encoding.GetEncoding("ibm866");
System.Text.Encoding encWinRu = System.Text.Encoding.GetEncoding(1251);

               
         oneBate=encWinRu.GetString(buffer,0,bytes);
               
            
               
         if(oneBate=="/")
         {   
            if(g>4) g=0;
            this.listView1.Items.Clear();
                  
                     
            try
            {
            this.itemLV.SubItems[g].Text=tmpMes1;
                  }
            catch (Exception er)
               {
            MessageBox.Show(er.Message.ToString());
                  }
            this.listView1.Items.Add(this.itemLV);
                  g++;
                  tmpMes1=" ";
                  
                  
               }
               else
               {
                  tmpMes1+=oneBate;
                  tmpMes+=oneBate;
               }
             }
               
         }

      }

   private void button2_Click(object sender, System.EventArgs e)
      {
         
         this.Close();
      }





 C# -- Программирование на C#
 Socet Anonymous    7/7/2005 3:22:00 PM
 RE: Socet Anonymous    7/7/2005 5:05:00 PM
 RE[2]: Socet Anonymous    7/7/2005 6:04:00 PM
 RE[3]: Socet Anonymous    10/22/2008 4:32:00 PM
 RE: Socet Anonymous    12/26/2005 4:42:00 PM


Контакт Реклама на сайте Спонсорам Веб мастерам

Лицензионное соглашение - © 2000-2012 dotSITE
Хостинг .NET предоставлен PARKING.RU
Поддержку сайта осуществляет Murano Software Inc., Offshore software development