Soketler için istemci (Client) ve sunucu (Server) arasındaki bağlantının sağlanması için olan bir iletişim kanalı diyebiliriz. Yaşam döngüsünü basitçe tarif etmek gerekirse, sunucu önceden belirlenen portu dinler, istemci ise bu porta mesaj gönderir.
Uygulama iki projeden oluşmakta. Server ve Clint(lar) olmak üzere iki adet dir. Server , kod içerisinde belirtilmiş iki kritik parametre vardır. İp ve Port. İp bize bulunduğumuz makinenin yani server olarak kullanacağımız makinen ip adresidir. Port ise dinlenecek bir dış bağlantı numarası diyebiliriz. Ortak bir ip ve port üzerinde anlaşma sağlanırsa iletişim doğru şekilde sağlanır.
Client ise dinlemeye başlayan server ‘ a bağlantı isteği gönderip başarılı olursa iletişim e hazır hale gelir. Bağlı olan her cliente yeni bağlantı ile birlikte güncel online kişi listesi gönderilir. Kişi listesi üzerinden ilgili kişiye server üzerinden mesaj gönderip alabiliriz. Mesajlarda Her Client ‘ ın lokalinde tutulduğu için eski mesajlarda saklanmaktadır.
Serverda yeni bağlantı sağlandıktan sonra client ‘ ın ilk mesajı kullanıcı adını göndermek oluyor. Gelen bu mesajı alıp istemci listemize ekliyoruz. Listedeki tüm clientları gezip her birine kendisi hariç istemci listesini gönderiyoruz.
Gönderilen mesajın normal mesajdan farkı 3$*$*3 ile başlıyor olması. Her Clint arasında da $ işareti belirttiğimizden Client aldığı mesajı split ederken $ işaretinden faydalanarak düzgün ve doğru parçalayabilecektir.
Client seçtiği kişiye mesajını gönderilecek KisininAdi + "..444.." +İlgili Client ın Kullanıcı Adı+" : "+Gönderilen Mesaj şeklinde hazırlayıp gönderiyor. Serverda nu parametreleri düzgün parçalayıp böldükten sonra listeden bulduğu Client a mesajı iletiyor.