c# 2005 ile basit bir chat programı

merhaba arkadaşlar. soket programlama konusuna giriş yapmak için bir mesajlaşma programı oldukça iyi bir fikir. Daha derin konulara temel olması açısından da doğru bir seçim olduğunu düşünüyorum. Soketlerle ilgili temel düzeyde bir program görmek için tıklayın...

bu konu hakkında kendi yaptığım basit bir programı paylaşmak isterim. programı yazabilmek için önce biraz soket bilgimizin olması gerekiyor. kısaca soketleri anlatayım.
soket kavramını aynı mahallede yaşayan komşuların evlerine benzetebiliriz. sakinlerden biri bir komşuya gittiğinde kapıyı çalar, kapı açıksa istediklerini alır ve gider. kapı da burada port kavramına tekabül etmektedir. soketler de aynı bilgisayar üzerinde iki programın ya da aynı ağ üzerinde 2 programın birbirleriyle iletişim kurmasını sağlayan yapılardır. komşular birbirleriyle aynı dili konuşmadıkları sürece anlaşmalarını bekleyemeyiz. bu durum soketler için de geçerlidir. veri alışverişi yapabilmek için çeşitli protokoller geliştirilmiştir. bunlardan biri ve en çok kullanılanı tcp protokolüdür. bir diğeri de udp'dir. bu ikisi arasındaki farka da kısaca değinmekte fayda var. tcp protokolünde bir bilgisayar veri gönderirken verinin ulaşıp ulaşmadığının da kontrolünü yapar ve sadece belirli bir adrese veriyi gönderir. udpde ise durum farklıdır. bilgisayar veriyi belirli portu kullanan her bilgisayara gönderir ve veriye ne olduğuyla ilgilenmez. udp'ye bir örnek verecek olursak; msnde konuşurken konferans yapmışsınızdır. bir pencereden yazdıklarınız konferansa dahil olan tüm kullanıcılara iletilir.Bu udp ile sağlanır. tcp ile ilgili örneği ise kod yazarak gösterelim.

Herşeyden önce eklemeniz gereken kütüphaneler System.Net.Sockets, System.IO, System.Threading.programda bir sunucu bir de istemci olacak. ikisinin kodlarını anlaşılmasının kolaylığı açısından ayrı ayrı yazacağım. Kodlar birleştirilip, tek bir exe dosyası üzerinden sunucu ya da istemci olmaya karar verilebilir. sunucu formunu şu şekilde tasarladım:

sunucu tarafında aşağıdaki bileşenlerden türettiğim bazı global değişkenler var:
tcplistener: tcp'ye uygun bir port dinleme bileşenidir.
networkstream: iki program arasında bağlantıyı kuran yapıdır.
streamwriter: networkstream'e veri yazmak için kullandığımız bileşendir.
streamreader: networkstream'den veri okumak için kullandığımız bileşendir.
çok geniş kapsamlı bir program yazmayacaksanız direk soket üzerinden okuma yazma yapabilirsiniz ancak ben kullanım kolaylığı ve programın genişletilebilir olması açısından (dosya göndermek gibi ek özellikler koyulabilir) networkstream bileşenini kullandım.
soketlerin çalışma mantığı şu şekildedir: veriyi gönderirsiniz ve yeni veri gelene kadar hiç bir işlem yapamazsınız. bu da asenkron olarak mesajlaşmaya engel olur. bu sorunu aşmak için thread kullanmamız yeterli olacaktır. threadler bu konunun dışında olduğu için fazla açmayacağım. thread sayesinde bir taraftan mesaj yazıp gönderebilirken, diğer taraftan veri gelmesini bekleyebiliriz. tcplistener türünde değişkenimizi başlattıktan sonra okuma işini yapacak threadimizi de başlatıyoruz.
Thread t;
TcpListener dinle;
private void button1_Click(object sender, EventArgs e)
{
dinle= new TcpListener(System.Net.IPAddress.Any,Convert.ToInt16(textBox1.Text));
dinle.Start();
t = new Thread(new ThreadStart(okumayabasla));
t.Start();
}

bu aşamadan sonra okumak için kullandığım fonksiyonu göstereyim:

Socket soket;
NetworkStream ag;
StreamReader oku;
public void okumayabasla()
{
soket = dinle.AcceptSocket();
ag = new NetworkStream(soket);
oku = new StreamReader(ag);
while (true)
{ try
{ string yazi= oku.ReadLine();
ekranabas(yazi);
}
catch
{return;}
}}

sanırım networkstream ile streamreader ikilisinin kullanımı anlaşılmıştır.acceptsocket isimli metot,tcp bir ağda herhangi bir veri talebinin kabul edilmesi için kullanılır.ekranabas fonksiyonu ise gelen yazıları ekranda göstermek için kullanılır. ancak bir thread içinden form bileşenlerine ulaşamadığımız için bir delege kullanmak zorundayız. delegeler de bu konunun dışında olduğu için bu konuya da değinmiyorum. sadece şunu söyleyebilirim, threadin içindeyken form bileşenleri uyuyormuş gibi algılanır ve bu uyku halini sonlandırmak için delege kullanılır. kullanımı da şu şekilde:
public delegate void ricdegis(string text);
public void ekranabas(string s)
{if (this.InvokeRequired)
{ricdegis degis = new ricdegis(ekranabas);
this.Invoke(degis, s);
}
else
{s = "istemci: " + s;
richTextBox1.AppendText(s+"\n");
} }

gelen yazıları okumak bu kadar uzun sürüyor ancak yazmak o kadar da zor değil:
StreamWriter yaz;
private void button2_Click(object sender, EventArgs e)
{yaz = new StreamWriter(ag);
yaz.WriteLine(textBox2.Text);
yaz.Flush();
textBox2.Text = "";
}

evet programımızın server kısmı bu kadar. Aslında istem-ci tarafında yapacaklarımız da çok farklı şeyler değil. tek fark burada bir tcp din-leme değişkeni değil, tcp talep etme değişkeni tanımlayacağız. tabi bir istemci olduğumuz için, talepte bulunacağımız bir sunucu gerekir. bunun için forma sunucunun ip numarasını girebileceğimiz bir textbox ekledim:

yine aynı şekilde eklememiz gereken kütüphaneler System.Net.Sockets, System.IO, System.Threading. global değişkenlerimiz biri hariç yine aynı. tabi burda soket tanımlamamıza gerek yok. çünkü biz istemciyiz. var olan sokete bağlanıyoruz. şimdi kodları yazalım:
TcpClient iste;
private void button1_Click(object sender, EventArgs e)
{ iste = new TcpClient(textBox1.Text, Convert.ToInt16(textBox2.Text));
ag = iste.GetStream();
yaz = new StreamWriter(ag);
t = new Thread(new ThreadStart(okumayabasla));
t.Start();
}
public void okumayabasla()
{ oku = new StreamReader(ag);
while (true)
{ try
{ string yazi = oku.ReadLine();
ekranabas(yazi);
}
catch{return;}
}}

olayın farklılığını tekrar izah edelim: sunucumuzda bir soketimiz var ve sokette belirli bir portu açıyoruz. portu açtıktan sonra gelen verileri dinlemeye ve kabul etmeye başlıyoruz. istemcimizde ise soket tanımlamıyoruz çünkü soket zaten tanımlı. adından da anlaşılacağı üzere istemci talep eden durumunda olduğu için networkstream'i kontrol etmesi onun için yeterli oluyor. sunucu tarafında soketi çalıştırmamız da iletişimi sağlamak için yeterli oluyor. kalan istemci kodlarını yazmaya gerek görmüyorum, çünkü sunucu tarafındaki kodları kopyalayıp yapıştırmanız programın çalışması için kafidir. bu yaptığımız program aslında temel düzeyde bir telnet programı da sayılabilir. projenin aslını isteyen arkadaşlar, yorum kısmına mail adreslerini bırakırlarsa en kısa sürede gönderirim. hepinize iyi çalışmalar, hoşçakalın...

88 yorum:

A dedi ki...

Bir dahaki proje Unix altında olsun, libpcap ile paketleri yakala :P

Adsız dedi ki...

eyvallah hocam

hocam allah senden razı olsun. tam bir aydır bu işe uğraşıyordum. çok çok teşekkür ederim

inşallah bu emeklerin karşılıksız kalmaz

Adsız dedi ki...

hocam programın çalışan halini kodlarıyla yollarsan sevinirim...
mail adresim pain_84@hotmail.com

Adsız dedi ki...

Tebrikler ancak!

Ah bi de system.netsokets vs. gibi componentleri nereden bulacağımızı nasıl ekliyceğimizi anlatmış olsaydınız.

Ancak, araştırıp öğrenmeye çalışacağım. Teşekkürler iyi bilgi.

Not: besyildizli@windowslive.com adresine kodları ya da bu sorum hakkında bilgi gönderebilirseniz çok memnun olurum.

Kolay gelsin. Sumeyra

Adsız dedi ki...

Gerçekten soket programlamaya yeni başlayanlar için için çok faydalı bir uygulama olmuş. C# da yeni olduğum için Dizayn görünümüne bakarak sunucu ve istemci programını çalıştıramadım. Acaba mail adresime kaynak kodunu gönderebilirmisiniz...

Yardımlarınız için şimdiden çok teşekkürler....

ozcelikburak@mynet.com

Adsız dedi ki...

Herşeyden önce emeğine sağlık.
benim takıldığım tek yer yeni başlayan -biri olarak- button 1 gönder butonu mu yoksa bağlan butanu mu sunucu formunda

z.burak güven dedi ki...

isim de bırakmamışsınız mail adresi de, o yüzden ortaya yazıyorum :) buton1 sunucu tarafında, bağlan butonu. kolay gelsin...

Adsız dedi ki...

slm kardesim emegine taşkkür ederim.rica etsem kaynak kodunu yollarmısın mail adresm
saltanaarica@yahoo.com

Adsız dedi ki...

mümkünse kaynak kodları ben de istiyorum ve bir de sorum olacak. Sizin yazdığınız istemci tarafında sunucunun IP numarasını da girmemiz gerekiyor. Benim merak ettiğim, örneğin: 5000ci potu dinleyen bilgisayarların port numarasını nasıl öğrenebiliriz. Bu şekilde IP numarasını girmeden sunucuya otomatik olarak bağlanabiliriz.

z.burak güven dedi ki...

son sorulan soruya mail yoluyla cevap verdim ancak bir de buraya yazayım. herhangi bir ağda 5000. portu dinleyen bilgisayarları bilmek için, bilgisayarların ip numaralarını bilmek gerekir. ip numaralarını bildiğimiz bilgisayarlara 5000. porta ping atabiliriz. eğer cevap gelirse portun dinlendiğini anlarız. olay bundan ibarettir. iyi çalışmalar...

Adsız dedi ki...

ellerine sağlık.cok güzel ve açıklayıcı olmus.projenin aslini gönderebilirseniz çok sevinirim.aspendos_88@hotmail.com

Adsız dedi ki...

Gönderdiğin program için çok sağol.Ellerine sağlık çok güzel olmuş.aspendos_88@hotmail.com

tdrgn dedi ki...

elinize saglık,gerçekten iyi çalışma..
bu programı 2008 de yazmaya calıstım epi bir hata verdi..
yardımcı olabılırsenız sevınırım..
tdrgn@windowslive.com

Adsız dedi ki...

Merhaba
Örnek guzel olmus eline saglık
Benim sorunum şu
Baglı olan her makıne bana IPsini yollayacak ben baglı olanları lıste seklınde gormek ıstıyorum bırı koptugunda yada kapandıgında listeden cıkaracak sureklı onlıne olanlar goruntulenecek boyle bı ornegın varmı ? varsa ve iletirsen sevinirim mailim cenktaylanduz@otmail.com

Adsız dedi ki...

iyi günler hocam güzel çalışma benim merak ettiğim bu program sadece yerel ağda mı çalışır yoksa sadece internete sahip olan ve server clientleri kurmuş herhangi 2 bilgisayarda da çalışır mı

z.burak güven dedi ki...

merhabalar, son yoruma cevaben yazıyorum bunları. Yerel ağda çalıştığından eminim ancak internet ortamında denemedim. Mutlaka bazı ek özellikler eklemek gerekiyordur şöyle ki; eğer internette başka bir ağdaki bilgisayarla konuşmak istersek bağlanmak istediğimiz bilgisayarın iç ip'sini bilmemiz gerekir. Buna ulaşmayı hiç denemedim ancak programı yazarken bu ipleri elde etmenin bir yolu olduğunu görmüştüm sanırım. Bu konuyu araştırmam lazım o yüzden net bir cevap veremiyorum. İlginize teşekkür eder iyi çalışmalar dilerim...

Emrah AR dedi ki...

selamlar
çalışmanız için teşekkür ederim.
acaba bir örneğni de ben rica edebilir miyim?
emrahar (at) gmail.com

teşekkürler

Adsız dedi ki...

Merhaba,

Çok sağol, gayet açık bir program olmuş. Hatta elimde bir kitap var. Para vererek aldığım kitaptaki kod çalışmıyor ama bu çalışıyor. Sorun olur diye kitabın adını vermiyorum.
Bir sorum var. Sanırım t thread'i çalışmaya devam ettiği için form un üstündeki pencere kapatma düğmesine basmama rağmen ne server'in ne de client'ın exe si kapanıyor. Windows görev yöneticisinden girip kendim kapatıyorum. Birini sonlandırınca diğeri otomatik olarak sonlanıyor. Bunu değistirebilecek bir ek yapabilir misin acaba koda? Yani form kapanınca exe'yi de kapatacak bir ek?
email: torun.halil@yahoo.com

Teşekkürler.

z.burak güven dedi ki...

@emrah : şu anda kendi bilgisayarımda değilim ama kendi bilgisayarıma geçince kaynak kodları gönderirim.

@halil : Açıkçası bu dediğine hiç dikkat etmemiştim. Tabi ki yapılabilir ama bu aralar oldukça yoğunum. Fırsat bulursam paylaşırım.

Adsız dedi ki...

Tebrikler. Güzel bir çalışma . Kod örneğini mail adrsime gönderirseniz çok sevinirim. metin@gonenler.com

Adsız dedi ki...

Hocam eline sağlık...Kodun bir örneğini de bana yollarsan sevinirim. serdarduymaz@gmail.com
Kolay gelsin...

abduhka dedi ki...

cok güzel bir anlatım olmuş...zahmet olmazsaprogramın aslını yollayabilirmisiniz(abduhka@hotmail.com)

Adsız dedi ki...

çok güzel açıklamışsın, c++ ta bende buna benzer bir uygulama geliştireceğim, rica etsem kaynak kodlarını mail adresime atabilir misin? triangel6{at}gmail{dot}com

Adsız dedi ki...

çok güzel anlatmışsın bende buna benzer bir uygulamayı c++ ta geliştireceğim, rica etsem kaynak kodları mail atabilir misin?

Unknown dedi ki...

hocam verdiginiz bilgiler icin cok tesekkur ederim, eger programı bana da iletebilirseniz cok sevinirim...
ismailozbergama@gmail.com
simdiden tesekkurler...

Adsız dedi ki...

hocam emeğinize sağlık..
programın çalışan halini tüm kodlarıyla gönderirseniz çok işime yarayacak.

mail adresim mimar_iku@hotmail.com

soycd dedi ki...

Paylaştığın için çok teşekkürler,programın kodlarını gönderebilirsen ben de çok sevinirim.iyi çalışmalar.
gzmakc@gmail.com

bilgin_erzurum dedi ki...

Merhabalar;
Öncelikle ellerinize sağlık, çok güzel bir çalışma olmuş. Mümkünse bana kaynak kodlarını göndere bilirmisiniz? Şimdiden teşekkür ederim:)
mail adresim:sultan.evcan@gmail.com

bilgin_erzurum dedi ki...

Merhabalar,
ellerinize sağlık çok güzel bir çalışma olmuş. Mümkünse kaynak kodunu mail atarsanız çok memnun olurum .Şimdden teşekkür ederim:)
mail adresim: sultan.evcan@gmail.com

Adsız dedi ki...

Ellerinize sağlık, çok güzel olmuş.
Eğer mümkünse kaynak kodunu göndere bilirmisiniz. Şimdiden teşekkür ederi :)
mail adresim:sultan.evcan@gmail

Unknown dedi ki...

Hocam merhaba, tüm kodları adresime yollayabilirseniz çok sevinirim. Çok büyük bir iyilik olacak. Şimdiden teşekkürler.

e-posta adresim: kivilcim_fctng@kampusum.net

Adsız dedi ki...

Dostum incelemek üzere kaynak kodları banada gönderir misin?
karakusmustafa@gmail.com

Basit ve anlaşılır bi anlatım olmuş.Eline sağlık..

Adsız dedi ki...

Merhaba

Anlatim ve kodlar icin tesekkur ederim,uzerinde calistigim bi konuydu ve baya yardimci oldu.

Kodlari bana da mail atarsan cok seviniirim,simdiden tesekkurler

crack.bergson@gmail.com

Adsız dedi ki...

Merhabalar

Anlatim ve kod ornekleri cok guzel,uzerine calistigim bir konuydu,kod orneklerini bana da gonderebilir misin?
simdiden cok tesekkur ederim

crack.bergson@gmail.com

Adsız dedi ki...

hocam ben socket programlama yeni basladım ve dokuman arastırıyorum senin makalende öğrendiğim çok sey oldu ama ileri duzeyde yetersiz kalıcakdır bana eğer elinde dokuman varsa ve bu projenin kaynak kodları varsa yollayabilirmisin acaba ?

rebellious.inlove@windowslive.com

mehmet dedi ki...

slm arkadaşım öncelikle böyle bir paylaşım için başta sana sonsuz tşk ederim.ufak bi ricam bu kaynak kodlarını ve bu kodların tam olarak nerelere yazıldığını ayrıntılı bi şekilde mailime gönderebilir misn ? wampapa_26@hotmail.com şimdiden tşkler emeğine sağlık :)

Adsız dedi ki...

Merhabalar,
bende acaba kaynak kodlarını rica etsem geliştirmek üzere, tabi sizin içinde mümkünse hcm...

bazaaran@msn.com

Şimdiden teşekkürler

BAZAARAN dedi ki...

Kaynak kodlarını banada rica etsem gönderebilirmisnz acaba???

bazaaran@msn.com

crazyheart dedi ki...

Selam hocam mükemmel bir bilgi paylaşımı yapmışsınız. Günümüzde sizin gibi insanları bulmak çok zor, ne kadar teşekkür etsek azdır. Bende kodları alabilir miyim acaba crazy_heart24@hotmail.com

Unknown dedi ki...

kardeş eline sağlık çok güzel anlatılmış ve uygulanmış bir application. acaba bana proh kodları ile birlikte mail adresime atarsanız çok sevinirim.) şimdiden kolay gelsin. mail: daywalker20@hotmail.com

mehtapuzunaslan dedi ki...

Rica etsem kaynak kodları ya da çalışan halini ben de alabilir miyim.

Çok güzel bir konu eline sağlık.

moonlight_gag@hotmail.com

videolar dedi ki...

güzel bir uygulama olmuş teşekkürler.

Kaynak kodlar ben de alabilir miyim?
mavcil@gmail.com şimdiden teşekkürler

Yasin İlkalp Arabacı dedi ki...

Çok Güzel Anlatmışsınız. Kaynak Kodları Banada Gönderirmisiniz. Teşekkür Ederim

Yasinilkalp_24@hotmail.com

Ferhat dedi ki...

Ornek cok guzel olmus abim ellerıne saglık ama ben bu ıstemcı olayındaki kodları anlamadım varsa butun kodları fln atarsan cok sevınırım acıl yapamam gerekır bole bı program bu en yakın budugum ve basıt bı ornek,

maıl;
gsmcazy_69@hotmail.com
adresime kodlrı atarsan cok sevınırım ..Ellerıne saglık

Unknown dedi ki...

arkadaşlar kodları alan var mı acaba ?

Adsız dedi ki...

Kaynak Kodu gönderir misiniz...

aysesraurkmez@gmail.com

"chat programı"

z.burak güven dedi ki...

@Cem
Tabi ki kodları alan var. Kodu talep eden hiç kimseye göndermemezlik etmedim. Yaklaşımınızdan hoşnut olmamakla birlikte, isterseniz kodu size de gönderirim. İyi çalışmalar dilerim...

Adsız dedi ki...

Öncelikle kolay gelsin ellerinize saglık mümkünse programının tamamını gönderebilirmisiniz.Şimdiden tşk ederim kolay gelsin...
ertugrul_dtysoft@hotmail.com

Densa dedi ki...

Hocam benim kafama takılan tek bi soru var.Bunu birden çok istemci kullanacak olursa kodları nasıl değiştirmemiz gerekir.Cevabınızı bekliyorum.Kolay gelsin.

Densa dedi ki...

Burak dün sana mail atmıştım.Ben birden cok istemci bağlamak istiyorum.Bana bu konuda yardımcı olursan çok sevinirim.Kolay gelsin iyi çalışmalar.

z.burak güven dedi ki...

@densa,

Selamlar, en azından bi email adresi bıraksaydınız sanırım daha iyi iletişim kurardık :) iki gün sonra ancak cevap verebiliyorum ama 2 gündür bilgisayar başında değilim. Projeyle uğraşmayalı nerdeyse 3 yıl oluyor :) isteyen arkadaşlara kaynak kodlarımı yolluyorum. uzmanlık alanım şu anda soketler değil maalesef. Ama kodları sizin için düzenledim. Birden fazla istemci bağlama şansınız var şu anda. En azından bu yeteneği kazandırdım. Geliştirmek size kalmış. Bi mail adresi bırakırsanız, kaynak kodlarını gönderebilirim. İyi çalışmalar dilerim...

Densa dedi ki...

Hocam çok teşekkür ederim.Mail adresim onur51_61@hotmail.com.Kolay gelsin.İyi çalışmalar.

qoblin dedi ki...

Hocam iyi günler
Öncelikle teşekkürler ben programlamada yeniyim ve ne bulsam okuyorum kendimi geliştirmek için bununla ilgili bi proje aldım sizin makaleniz bana yardımcı oldu ancak yeni olduğum için bazı kısımlarını anlayamadım size msn adresimi versem mail olarak bana yollarmısınız programın kodlarını ve varsa bu konuyla ilgili başka makaleleri?
Şimdiden teşekkür ederi.

cem.cemparator@hotmail.com

qoblin dedi ki...

Konu biraz acil yardımcı olursanız sevinirim
cem.cemparator@hotmail.com

qoblin dedi ki...

Konu biraz acilde en kısa sürede yardımlarını bekliyorum şimdiden teşekkür ederim
cem.cemparator@hotmail.com

Adsız dedi ki...

guzel bılgı.. enrique_iglesias3370@hotmail.com abanda yollarsan sevinırım.kodla bırlıkte

Adsız dedi ki...

tebrikler guzel calısma enrique_iglesias3370@hotmail.com banada yollarsanız sevınırım

Adsız dedi ki...

Merhaba kaynak 3 seneye yakın olmuş ama eğer bu mesaj size ulaşırsa kaynak kodlarını almak isterim. Teşekkür ederim. iamtheeggmantheyaretheeggman@yahoo.co.uk

Adsız dedi ki...

emeğın için sağol banada iletırsen sevınırım fati.h@msn.com

WhiTeStoNe dedi ki...
Bu yorum yazar tarafından silindi.
z.burak güven dedi ki...

Ben kodları isteyen herkese yolluyorum ama onlar da bana bi email adresi bırakıyolar :)

WhiTeStoNe dedi ki...

akkayaozkan88@hotmail.com
kardes prodramı gonderırsen cok sevınırım

Adsız dedi ki...

selamlar.öncelikle elinize sağlık çok güzel bi çalışma olmus.fakat ben birden fazla client nasıl iletişime gecer onu yapamadım.yaptıgınız örnegi gönderirseniz çok sevinirim.kolay gelsin...
mail adresim
resul_58_seven@hotmail.com

Unknown dedi ki...

benim proje ödevim war bu sekilde, TCP / IP protokolü kullanılarak aynı ağdaki bilgisayarlar üzerinde mesajlasmayi saglayacak bir program yazimi, ama hic yazilim dersi görmedim ben nasil böle bi konu verildi bilmiyorum da, bunu tam olarak yapabilmem icin napmam gerekiyor, Microsft Visual C# 2008 felan kurdum kodları nasıl calsitirabilirim ?

E-mail: hayat_1_izdirap@hotmail.de

Adsız dedi ki...

benim proje ödevim var yardımcı olailir misiniz c# ile iki bilgisayarın internet üzerinden haberleşmesi
çalışan halini yollarsanız sevinirim
aygulkoska@gmail.com

Unknown dedi ki...

teşekkürler hocam..

z.burak güven dedi ki...

Hocalık bişeyimiz yok ya :) abartmayın lütfen :) Sadece teşekkür çoooook yeterli :) umarım kodları alan herkes bi şekilde faydasını görmüştür. İyi çalışmalar...

Unknown dedi ki...

merhabalar hocam kodlari bir zahmet bende alabilirmiyim sevgiler
memoaslanch@gmail.com

Hakan dedi ki...

elinize sağlık çok güzel bir yazı olmuş . kodların çalışan hallerini bana da yollarsanız sevinirim.
hb@turk.tc

Unknown dedi ki...

Hocam emeginize elinize saglik... tozkan@gtsi.net adresine kaynak kodlari yollayabilirseniz cok makbule gecer simdiden tesekkurler iyi calismalar...

Deniz dedi ki...

hocam programın çalışan halini kodlarıyla yollarsan sevinirim...
mail deniztolan@hotmail.com

Adsız dedi ki...

Hello Do not quite understand what is at stake.

gülnihal dedi ki...

ben yazdım ama sorun dedi???:(

bu konuyla ilgili bişeyler gönderebilirseniz çok sevinirim projem de ...gsbiyom@gmail.com

hamido dedi ki...

Hocam Paylasimin icin tesekkürler eger mümkünse projenizin aslini banada gönderebilirmisiniz. Tesekkurler
hamido749@hotmail.com

Murat dedi ki...

Eline sağlık. Büyük çaplı bir projede mesajlaşma amaçlı değil ama server ile clientın anlık haberleşmesi için ters tetikleme mantıklı bir webservice yerine bunu kullanmayı düşünüyorum. hala konu aktifse en son halini alabilirmiyim?

yaman_murat@hotmail.com

Adsız dedi ki...

çalışmanızı paylaştığınız için teşekkürler..

blackmask_65@hotmail.com

adresine çalışır programı gönderebilirmisiniz

Mustafa K dedi ki...

peki servere birçok cilent bağlanması nasıl olur acaba fikir verebilirmisiniz acaba

Adsız dedi ki...

Öncelikle Merhaba,
Emeğinize sağlık benimde C# yerel ağda messenger proğramı yapmam lazım proje ödevim..Kodları banada yollarsanız sevinirim..

emelce_she@hotmail.com

Adsız dedi ki...

Paylaşımınız için teşekkürler
kodları gönderir misiniz
mail adresim : unzile_ctn@hotmail.com

Adsız dedi ki...

Merhaba,
paylaşımınız için teşekkür ediyorum.
Kodları yollarsanız sevinirim.
d.yildirim@hotmail.com

Adsız dedi ki...

merhaba,paylaşımınız için teşekkürler.
Kodları gönderebilir misiniz?

sevketkahya@hotmail.com

Adsız dedi ki...

eline sağlık admin atarsan çok sevinirim

bynaughty1907@gmail.com

suha dedi ki...

Güzel anlatım olmuş.Kodları gönderebilir misiniz?
suhaoztok@gmail.com

Adsız dedi ki...

Elinize sağlık güzel ve açıklayıcı bir anlatım olmuş,şu an tam da ihtiyacım olan bir konu.Rica etsem kodun tamamını bana da gönderebilir misiniz? Şimdiden teşekkürler,kolay gelsin.
eminetsksn@gmail.com

Adsız dedi ki...

programı yollarmısın
hsy97@msn.com

Unknown dedi ki...

abi selam :) bu programı kodlarıyla birlikte gönderir misin?? ahmet2715269@gmail.com

Adsız dedi ki...

Merhaba program kodlarını yollayabilirseniz sevinirim.

ozgeaksu.91@hotmail.com

nazlı dedi ki...

Program kodlarını gönderebilirseniz cok sevinirim.
nazli_cinar@outlook.com