Konuyu görüntüle
IUCODERS FORUM > Programlama > .NET > C# Portlardan Veri Aktarma Hakk?nda
Yazar
yuto


avatar

Kayıt: 05.02.2007
06.02.2007-15:26 #16190
merhabe ben bişeler kapmak için foruma üye oldum bir sorum olacak burda da bir makale vardı sanırsam onun hakkında ben bir proje buldum portlardan veri aktarmayla ilgili elimde okumayla (server) ilgili şöyle bir kod var:
        Thread kanal;
        bool Working = false;
        bool Paused = false;

private void StartServer_Click(object sender, EventArgs e)
        {
            if (Working == false)
            {
                kanal = new Thread(new ThreadStart(dinle));
                try
                {
                    kanal.Start();
                    kanal.Priority = ThreadPriority.Highest;
                }
                catch (ThreadAbortException hata)
                {
                    kanal.Abort();
                    Log.Text = Log.Text + "
# Hata: Bekleyen paket yok";
                }
                Working = true;
                Log.Text = Log.Text + "
#Server Başlatıldı";
                StartServer.Text = "Sunucuyu Durdur";
            }
            else
            {
                if (Working == true)
                {
                    kanal.Abort();
                    Log.Text = Log.Text + "
# Sunucu Durduruldu";
                    StartServer.Text = "Sunucuyu Başlat";
                }
            }

        }

private void dinle()
        {
            bool cevap = true;
            string ip;
            string gelen;
            TcpListener dinleyici = new TcpListener(9999);
            byte[] gelenveri_dizi = new byte[1024];
            byte[] gonderveri_dizi = Encoding.UTF8.GetBytes(cevap.ToString());
            while (true)
            {
                dinleyici.Start();
                Socket soket = dinleyici.AcceptSocket();
                soket.Receive(gelenveri_dizi, gelenveri_dizi.Length, 0);
                gelen = Encoding.UTF8.GetString(gelenveri_dizi);
                MessageBox.Show(gelenveri_dizi.Length.ToString());
                Log.Text = Log.Text + "
" + gelen;
                //listBox1.Items.Add(gelen);
                ip = soket.RemoteEndPoint.ToString();
                Userlist.Items.Add(ip);
                soket.Send(gonderveri_dizi, gonderveri_dizi.Length, 0);
                dinleyici.Stop();
            }
        }

öncelikle şu olayın tam mantığını anlayabilmiş değilim neyin ne olduğunu açıklayabilirseniz sevinirim

ayrıca bu kodda bir hata var gelen en büyük verinin karakterlerini alıyor mesela ilk asdf yazıyorum ikinci abc yazıyorum abcf gidiyor bunun sebebi nedir nasıl çözülür onu da açıklayabilirseniz sevinirim.





Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb