<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Yaz Boz</title>
	<atom:link href="http://10urshin.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://10urshin.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Wed, 17 Feb 2010 19:34:15 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='10urshin.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/2dfb3e5b574bc67e3e75eca74c181aad?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Yaz Boz</title>
		<link>http://10urshin.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://10urshin.wordpress.com/osd.xml" title="Yaz Boz" />
	<atom:link rel='hub' href='http://10urshin.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Rapid Roll (Xna Game)</title>
		<link>http://10urshin.wordpress.com/2010/02/17/rapid-roll-xna-game/</link>
		<comments>http://10urshin.wordpress.com/2010/02/17/rapid-roll-xna-game/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 19:29:38 +0000</pubDate>
		<dc:creator>10uR</dc:creator>
				<category><![CDATA[Xna]]></category>

		<guid isPermaLink="false">http://10urshin.wordpress.com/?p=70</guid>
		<description><![CDATA[Xna ile uzun bir zamandır uğraşmıyordum,şimdi yine xna&#8217;ye döndum.Basit bir oyun yazdım,bazı nokia telefonlarında var -Rapid Roll- . Oyunda amaç çubukları kullanarak engellerden kaçıp,düşmeden,canları toplayarak en yüksek puanı elde etmek. Oyunun çalışmasını görmek için tıklayın . Setupını indirmek için tıklayın . Kaynak kodları indirmek için tiklayın .<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=10urshin.wordpress.com&amp;blog=10914160&amp;post=70&amp;subd=10urshin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Xna ile uzun bir zamandır uğraşmıyordum,şimdi yine xna&#8217;ye döndum.Basit bir oyun yazdım,bazı nokia telefonlarında var -Rapid Roll- .</p>
<p><span id="more-70"></span></p>
<p>Oyunda amaç çubukları kullanarak engellerden kaçıp,düşmeden,canları toplayarak en yüksek puanı elde etmek.</p>
<p>Oyunun çalışmasını görmek için <a href="http://www.screentoaster.com/watch/stVkJVQEBIR19ZRF5YWltQXlFQ"> tıklayın .</a></p>
<p>Setupını indirmek için <a href="http://www.box.net/shared/0u3ze0x9iy"> tıklayın .</a></p>
<p>Kaynak kodları indirmek için <a href="http://www.box.net/shared/kqo2nxsm68"> tiklayın .</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/10urshin.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/10urshin.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/10urshin.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/10urshin.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/10urshin.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/10urshin.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/10urshin.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/10urshin.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/10urshin.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/10urshin.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/10urshin.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/10urshin.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/10urshin.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/10urshin.wordpress.com/70/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=10urshin.wordpress.com&amp;blog=10914160&amp;post=70&amp;subd=10urshin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://10urshin.wordpress.com/2010/02/17/rapid-roll-xna-game/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d0a314adfee917168a703106b776211?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">satranj</media:title>
		</media:content>
	</item>
		<item>
		<title>Wpf ile yeni yazdığım bir ekran kapatma ve kilitleme güvenlik uygulaması -Kodlar-</title>
		<link>http://10urshin.wordpress.com/2010/02/05/wpf-ile-yeni-yazdigim-bir-ekran-kapatma-ve-kilitleme-guvenlik-uygulamasi-kodlar/</link>
		<comments>http://10urshin.wordpress.com/2010/02/05/wpf-ile-yeni-yazdigim-bir-ekran-kapatma-ve-kilitleme-guvenlik-uygulamasi-kodlar/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 11:16:59 +0000</pubDate>
		<dc:creator>10uR</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[ekranı kapat]]></category>
		<category><![CDATA[hook]]></category>
		<category><![CDATA[keyboard hook]]></category>
		<category><![CDATA[kilitle]]></category>
		<category><![CDATA[pinvoke]]></category>
		<category><![CDATA[wpf]]></category>

		<guid isPermaLink="false">http://10urshin.wordpress.com/?p=61</guid>
		<description><![CDATA[Daha önce çalıştırılabilir versiyonunu burada verdiğim ekran kapatma ve kilitleme programında 1-2 ufak değişiklik yaptım yeni halinin setupını ve kodları aşağıdan indirebilirsiniz&#8230; Setup için tıklayın Kaynak Kodlar için tıklayın<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=10urshin.wordpress.com&amp;blog=10914160&amp;post=61&amp;subd=10urshin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Daha önce çalıştırılabilir versiyonunu <a href="http://10urshin.wordpress.com/2010/01/11/wpf-ile-yeni-yazdigim-bir-ekran-kapatma-ve-kilitleme-guvenlik-uygulamasi/"> burada </a>verdiğim ekran kapatma ve kilitleme programında 1-2 ufak değişiklik yaptım yeni halinin setupını ve kodları aşağıdan indirebilirsiniz&#8230;<br />
<span id="more-61"></span><br />
Setup için<a href="http://www.box.net/shared/nfpphnv68c"> tıklayın </a></p>
<p>Kaynak Kodlar için<a href="http://www.box.net/shared/b0k31s50tm"> tıklayın </a></p>
<p><a href="http://10urshin.files.wordpress.com/2010/02/kilitlemeekrani.jpg"><img src="http://10urshin.files.wordpress.com/2010/02/kilitlemeekrani.jpg?w=500" title="KilitlemeEkranı" class="aligncenter size-medium wp-image-63"></a><br />
<a href="http://10urshin.files.wordpress.com/2010/02/masaustuyukleniyor.jpg"><img src="http://10urshin.files.wordpress.com/2010/02/masaustuyukleniyor.jpg?w=686&#038;h=380" alt="Masaustu geri yükleniyor..." title="MasaustuYukleniyor..." width="686" height="380" class="aligncenter size-full wp-image-64" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/10urshin.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/10urshin.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/10urshin.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/10urshin.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/10urshin.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/10urshin.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/10urshin.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/10urshin.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/10urshin.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/10urshin.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/10urshin.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/10urshin.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/10urshin.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/10urshin.wordpress.com/61/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=10urshin.wordpress.com&amp;blog=10914160&amp;post=61&amp;subd=10urshin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://10urshin.wordpress.com/2010/02/05/wpf-ile-yeni-yazdigim-bir-ekran-kapatma-ve-kilitleme-guvenlik-uygulamasi-kodlar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d0a314adfee917168a703106b776211?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">satranj</media:title>
		</media:content>

		<media:content url="http://10urshin.files.wordpress.com/2010/02/kilitlemeekrani.jpg" medium="image">
			<media:title type="html">KilitlemeEkranı</media:title>
		</media:content>

		<media:content url="http://10urshin.files.wordpress.com/2010/02/masaustuyukleniyor.jpg" medium="image">
			<media:title type="html">MasaustuYukleniyor...</media:title>
		</media:content>
	</item>
		<item>
		<title>Wpf ile yeni yazdığım bir ekran kapatma ve kilitleme güvenlik uygulaması</title>
		<link>http://10urshin.wordpress.com/2010/01/11/wpf-ile-yeni-yazdigim-bir-ekran-kapatma-ve-kilitleme-guvenlik-uygulamasi/</link>
		<comments>http://10urshin.wordpress.com/2010/01/11/wpf-ile-yeni-yazdigim-bir-ekran-kapatma-ve-kilitleme-guvenlik-uygulamasi/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 17:04:01 +0000</pubDate>
		<dc:creator>10uR</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[ekranı kapat]]></category>
		<category><![CDATA[hook]]></category>
		<category><![CDATA[keyboard hook]]></category>
		<category><![CDATA[kilitle]]></category>
		<category><![CDATA[pinvoke]]></category>
		<category><![CDATA[wpf]]></category>

		<guid isPermaLink="false">http://10urshin.wordpress.com/?p=46</guid>
		<description><![CDATA[Wpf ile bir ekran kapatma ve kilitleme uygulaması yazmaya başladım.Daha bitmedi ancak ilk karalı sürümü elde etmiş bulunmaktayım.Finallerim yaklaştığı için 3 hafta kadar bir süreyle meşgul olucağım için de bu kararlı sürümü blogumda paylaşmak istedim.Program tam bitmediği için kodları paylaşmıcam yanlızca calıştırılabilir versiyonu paylaşıyorum 3 &#8211; 3.5 hafta sonra da full bitmiş halini ve kodları <a href="http://10urshin.wordpress.com/2010/01/11/wpf-ile-yeni-yazdigim-bir-ekran-kapatma-ve-kilitleme-guvenlik-uygulamasi/" class="excerpt-more-link">[&#8230;]</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=10urshin.wordpress.com&amp;blog=10914160&amp;post=46&amp;subd=10urshin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Wpf ile bir ekran kapatma ve kilitleme uygulaması yazmaya başladım.Daha bitmedi ancak ilk karalı sürümü elde etmiş bulunmaktayım.Finallerim yaklaştığı için 3 hafta kadar bir süreyle meşgul olucağım için de bu kararlı sürümü blogumda paylaşmak istedim.Program tam bitmediği için kodları paylaşmıcam yanlızca calıştırılabilir versiyonu paylaşıyorum 3 &#8211; 3.5 hafta sonra da full bitmiş halini ve kodları paylaşırım.<br />
<span id="more-46"></span></p>
<p>Yararlandığım kaynaklar ;</p>
<p>http://pinvoke.net ve http://www.codeproject.com/KB/system/CSLLKeyboard.aspx -&gt; low level keyboard hook<br />
http://www.c-sharpcorner.com/Resources/Detail.aspx?ResourceId=847 -&gt; penceresiz program başlatma<br />
http://www.pinvoke.net/default.aspx/user32/RegisterHotKey.html -&gt;hotkeys</p>
<p>Programın yapabildikleri = Global hotkeys,Ekranı doğrudan kapatabilme,windowsun kontrol tuşlarını engelleme(ctrl alt del haric <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  Bunu yapmanın tek yolu msGina.dll i baştan yazmak o da beni aşar şimdilik <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  &#8230;),program şifresini base64 şifreleme,pencereye gerek olmadan başlama,taskbar menusu,görev yöneticisini engelleme&#8230;</p>
<p>programı <a href="http://www.box.net/shared/xgr3k6d5fn">Buradan indirebilirsiniz.</a> </p>
<p><img src="http://10urshin.files.wordpress.com/2010/01/splash.png?w=600" alt="Splash Screen" /></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/10urshin.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/10urshin.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/10urshin.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/10urshin.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/10urshin.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/10urshin.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/10urshin.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/10urshin.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/10urshin.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/10urshin.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/10urshin.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/10urshin.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/10urshin.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/10urshin.wordpress.com/46/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=10urshin.wordpress.com&amp;blog=10914160&amp;post=46&amp;subd=10urshin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://10urshin.wordpress.com/2010/01/11/wpf-ile-yeni-yazdigim-bir-ekran-kapatma-ve-kilitleme-guvenlik-uygulamasi/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d0a314adfee917168a703106b776211?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">satranj</media:title>
		</media:content>

		<media:content url="http://10urshin.files.wordpress.com/2010/01/splash.png?w=600" medium="image">
			<media:title type="html">Splash Screen</media:title>
		</media:content>
	</item>
		<item>
		<title>c# ile irc botu serüvenim&#8230;</title>
		<link>http://10urshin.wordpress.com/2009/12/17/c-ile-irc-botu-seruvenim/</link>
		<comments>http://10urshin.wordpress.com/2009/12/17/c-ile-irc-botu-seruvenim/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 13:54:48 +0000</pubDate>
		<dc:creator>10uR</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[bot]]></category>
		<category><![CDATA[c# sockets]]></category>
		<category><![CDATA[irc]]></category>

		<guid isPermaLink="false">http://10urshin.wordpress.com/?p=30</guid>
		<description><![CDATA[Oynadığım bir oyun(Slavehack) için irc üstünde bir ddos kanalı var.Geçenlerde yine bu kanala takılırken bir irc botu yazma isteği duydum.Hemen bir irc botunun nasıl yazıldığını araştırmaya başladım. C# ta bir irc botu yazmak için genel irc komutlarını, c#soket kullanımını ve string spliti bilmek gerektiğini ögrendim.Soket ve split sorun değildi ancak irc komutlarını bulmak biraz zor <a href="http://10urshin.wordpress.com/2009/12/17/c-ile-irc-botu-seruvenim/" class="excerpt-more-link">[&#8230;]</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=10urshin.wordpress.com&amp;blog=10914160&amp;post=30&amp;subd=10urshin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Oynadığım bir oyun(<a href="http://www.slavehack.com">Slavehack</a>) için irc üstünde bir ddos kanalı var.Geçenlerde yine bu kanala takılırken bir irc botu yazma isteği duydum.Hemen bir irc botunun nasıl yazıldığını araştırmaya başladım.<span id="more-30"></span></p>
<p>C# ta bir irc botu yazmak için genel irc komutlarını, c#soket kullanımını ve string spliti bilmek gerektiğini ögrendim.Soket ve split sorun değildi ancak irc komutlarını bulmak biraz zor oldu zira piyasada irc komutları adı altında verilmiş bir yığın mirc komutları var.Benim bulabildiğim komular &#8220;NICK&#8221;,&#8221;JOIN&#8221;,&#8221;USER&#8221;,&#8221;MODE&#8221;,&#8221;PRIVMSG&#8221;,&#8221;PART&#8221; ve &#8220;QUIT&#8221; mesajları oldu ve bunların basit bir irc botu yazmak için yeterli komutlar olduğunu da ögrendim.</p>
<p>Botu yazmaya başlaman önce hangi özellikleri yazacağım üzerinde düşündüm ve botu multi channel(birden çok kanala aynı anda bağlanabilen) şeklinde yazmaya karar verdim ayrıca bota bazı kodlar için admin şifresi ekledim ki herkes kontrol edemesin <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ayrıca botu adminini izleyebilecek şekilde yazdım bu sayede eğer admin kanaldan veya serverdan ayrılırsa,yada kanaldan atılırsa bot admin yetkisini kilitleyip tekrar şifre sorma moduna dönüyor.Ve en beğendiğim özelliği de adminin isim değişikliklerini takip edip tekrar şifre yazma derdinden kurtarabiliyor <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Nese çok konuştum artık kodlara geçelim &#8230;</p>
<p>Botumuz 4 static classtan oluşuyor  Program.cs ;main metodunu içeren ana class,Connection.cs ;irc serverına bağlantıyı yapan ve gelen komutları gerekli yere yönlendiren class,PingSender.cs ;belli aralıklarla servera ping gönderen thread class(ping yollamazsak server bizim bağlanıtmızın koptuğunu düşünür) ve son olarak Commander.cs ;gelen komutlara karşılık ne yapılacağını belirleyen metodları içeren class.</p>
<pre class="brush: csharp;">
public class Program
 {

    public static string SERVER = &quot;217.114.215.241&quot;;//buraya bağlanmak istediğimiz serverı yazıyoruz(ip yada domain farketmez)

    public static int PORT = 6667; // Irc serverının portu (genelde 6667 olur)

    public static string USER = &quot;USER Cyber_Bot 8 * :I'm a C# irc bot written by 10uRSHiN&quot;;//Kullanıcı bilgisi

    public static string NICK = &quot;CybeR_Bot&quot;;// Bot'un nickname'i

    public static string CHANNEL = &quot;#bot_try&quot;;//Bağlanılacak kanal(bot bağlandıktan sonra başka kanallara da bağlayabilirsiniz)

    public static string pass = &quot;i am master&quot;; //botumuzun bizi tanıması için admin şifremiz
    public static char prefix = '@'; //bota komut gönderiyorsak bunu belirtmek için önce bu karakteri yazmalıyız
//mesela bota bir şey söyletmek istersek @say söylenecek şey şeklinde olcak

    static void Main(string[] args)
    {
        Connection.connect(); //bağlantıyı başlatalım
    }
}
</pre>
<pre class="brush: csharp;">
public static class Connection
{
    public static StreamWriter writer; //servera mesaj göndermek için
    public static NetworkStream stream;
    public static TcpClient irc; //bağlantıyı sağlamak için
    public static StreamReader reader; //serverdan mesaj almak için
    public static PingSender sender; //serva sürekli ping yollamak için
    public static StreamWriter logger; //konuşma loglarını kaydetmek için
    public static void connect()
    {
        irc = new TcpClient(Program.SERVER, Program.PORT); //bağlantıyı sağlayalım
        stream = irc.GetStream();
        reader = new StreamReader(stream); //readeri tanımlayalım
        writer = new StreamWriter(stream); //writeri tanımlayalım
        logger = new StreamWriter(Environment.CurrentDirectory + &quot;\\log.txt&quot;, true); //log dosyamız botumuzun çalıştığı dizinde log.txt dosyası
        logger.WriteLine(&quot;------------------------------------&quot;);
        logger.WriteLine();
        logger.WriteLine(&quot;Yeni oturum açıldı.......&quot;); //Botumuzun yeni bir bağlantı yaptığını belirtelim
        DateTime dt = DateTime.Now; // geçerli tarih saati alalım
        logger.WriteLine(&quot;Date = &quot;+ dt.ToShortDateString() + &quot; &quot; + dt.ToShortTimeString() + &quot;..................&quot; ); //Oturum açılma tarih saatini yazalım
        logger.WriteLine(&quot;.................................&quot;);
        logger.WriteLine();
        logger.WriteLine();
        logger.Flush();
        PingSender ping = new PingSender(); //pingSenderımızı tanımlayalım
        ping.Start(); //pingsender threadimizi başlatalım
        writer.WriteLine(Program.USER); //botumuzu servera tanıtalım
        writer.Flush();
        writer.WriteLine(&quot;NICK &quot; + Program.NICK); //botumuzun nickini servera söyleyelim
        writer.Flush();
        writer.WriteLine(&quot;MODE &quot; + Program.NICK + &quot; +B&quot;); //bu kullanıcının bir bot olduğunu bildirelim(her server desteklemeyebilir!)
        writer.Flush();
        writer.WriteLine(&quot;PRIVMSG nickserv :identify ********&quot;); //eğer botumuz için kayıtlı bir nick kullanıyorsak kayıt şifresini yollayalım(***** yerine şifre gelcek)
        writer.Flush();
        Thread.Sleep(1000);//kısa bi uyku...
        writer.WriteLine(&quot;JOIN &quot; + Program.CHANNEL); //botumuzu kanala bağlayalım
        writer.Flush();
        writer.WriteLine(&quot;PRIVMSG &quot; + CHANNEL + &quot; :&quot; + &quot;Selam herkese&quot;); //botumuz bağlanır bağlanmaz bir selemlama söylemesini istersek...
        writer.Flush();
        String inputLine;
        while (true)
        {
            while ((inputLine = reader.ReadLine()) != null) //serverdan cevap geldikçe
            {
                if (!inputLine.Contains(&quot;PONG&quot;)) Console.WriteLine(inputLine); //eğer gelen ping cevabı değilse(pong mesajları logları bozuyor!)
                    if(inputLine.Contains(&quot;PRIVMSG&quot;)) //eğer gelen bir PRIVMSG komutuysa
                    {
                        char[] split = { '!', ' ', ':' };
                        //[0] = kim yolladı
                        //[1] = yollayanın user stringi
                        //[2] = PRIVMSG
                        //[3] = nereye yolladı(hangi kanal)
                        //[4] = yollanan komutmu?(komutsa prefix+command şeklinde)
                        //[5] = stringin kalan kısmı
                        string[] message = inputLine.Split(split,6,StringSplitOptions.RemoveEmptyEntries);
                        if (message.Length &gt; 5) (gelen mesaj 5 parçaysa)
                        {
                            if(message[3]!=Program.NICK) //eğer mesaj bota özel yollanmamışsa (kanala gönderilmişse)
                            logger.WriteLine(dt.ToShortTimeString() +&quot; {&quot; + message[3] + &quot;}&quot; + &quot;&lt;&quot; + message[0] + &quot;&gt;&quot; + &quot; &quot; + message[4] +&quot; &quot; + message[5]);
                            //mesajı log dosyasına kaydedelim ( {kanal}&lt;yollayan&gt; mesaj şeklinde)
                            else
                            logger.WriteLine(dt.ToShortTimeString() +&quot; {&quot; + &quot; ÖZEL MESAJ &quot; + &quot;}&quot; + &quot;&lt;&quot; + message[0] + &quot;&gt;&quot; + &quot; &quot; + message[4] + &quot; &quot; + message[5]);
                            //mesajı log dosyasına kaydedelim ( { ÖZEL MESAJ }&lt;yollayan&gt; mesaj şeklinde)
                        }
                        else //gelen mesaj 4 parça parselenmişse
                        {
                            Commander.checkForMyip(message[3], message[4]);
                            if (message[3] != Program.NICK)//mesaj bota özel yollanmamışsa(kanal mesajıysa)
                                logger.WriteLine(dt.ToShortTimeString()+&quot; {&quot; + message[3] + &quot;}&quot; + &quot;&lt;&quot; + message[0] + &quot;&gt;&quot; + &quot; &quot; + message[4]);
                                //mesajı log dosyasına kaydedelim ( {kanal}&lt;yollayan&gt; mesaj şeklinde)
                            else
                                logger.WriteLine(dt.ToShortTimeString()+&quot; {&quot; + &quot; ÖZEL MESAJ &quot; + &quot;}&quot; + &quot;&lt;&quot; + message[0] + &quot;&gt;&quot; + &quot; &quot; + message[4]);
                                //mesajı log dosyasına kaydedelim ( { Özel MESAJ }&lt;yollayan&gt; mesaj şeklinde)
                            }
                            logger.Flush();
                        if (message[4] == Program.prefix + &quot;say&quot;) //eğer say(söyle) komutu gelirse
                        {
                            Commander.say(message[3],message[0], message[5]);
                        }
                        if (message[4] == Program.prefix + &quot;join&quot;) //eğer join(bağlan) komutu gelirse
                        {
                            try
                            {
                                Commander.join(message[0],message[5]);
                            }
                            catch(Exception e)
                            {
                                writer.WriteLine(&quot;PRIVMSG &quot; + message[0] + &quot; :&quot; + &quot;Bağlanılıcak kanalı yazmayı unuttunuz!&quot;); //join komutu ama nereye?
                                writer.Flush();
                            }
                        }
                        if (message[4] == Program.prefix + &quot;quit&quot;) //eğer quit(çık) komutu gelirse
                        {
                            Commander.quit(message[0]);
                        }
                        if (message[4] == Program.prefix + &quot;admin&quot;) //eğer admin(admin olduğumuzu belirtmek için bota şifremizi gönderiyorsak) komutu gelirse
                        {
                            try
                            {
                                Commander.adminLogin(message[0],message[5]);
                            }
                            catch (Exception e)
                            {
                                writer.WriteLine(&quot;PRIVMSG &quot; + message[0] + &quot; :&quot; + &quot;Şifre yazmazsan admin olduğunu nasıl bilebilirim!&quot;); //admin komutu şifresiz kullanılırsa
                                writer.Flush();
                            }
                        }
                    }
                    if (inputLine.Contains(&quot;NICK&quot;)) //bağlı olduğumuz kanallardan birinde biri adını mı değiştirdi?
                    {
                        char[] splitter = { ':', '!', ' ' };
                        //[0] = eski isim
                        //[1] = değiştirenin user stringi
                        //[2] = eski isim
                        //[3] = yeni isim
                        string[] message = inputLine.Split(splitter, StringSplitOptions.RemoveEmptyEntries);
                        logger.WriteLine(dt.ToShortTimeString() +&quot; --------- &lt;&quot; + message[0] + &quot;&gt; adını &lt;&quot; + message[3] + &quot;&gt; olarak değiştirdi ---------&quot;);
                        //isim değişmesini loglara kaydedelim (-------&lt;eskinick&gt; adını &lt;yeninick&gt; olarak değiştirdi ------- şeklinde)
                        logger.Flush();
                        if (Commander.checkAdmin(message[0])) //eğer adını değiştiren botun adminiyse
                            {
                                Commander.admin = message[3]; //adminin yeni adını kaydedelim
                            }
                    }
                    if (inputLine.Contains(&quot;QUIT&quot;) || inputLine.Contains(&quot;PART&quot;)) //birisi kanaldan yada serverdan ayrılıyorsa
                    {
                        string who = inputLine.Substring(1, inputLine.IndexOf('!')); //kim ayrılıyor
                        if (Commander.checkAdmin(who)) //eğer ayrılan adminse
                        {
                            Commander.admin = &quot;&quot;; //admini silelim ki birisi onun adını alıp botu kontrol edemesin
                        }
                        logger.WriteLine(dt.ToShortTimeString()+&quot; --------- &lt;&quot; + who + &quot;&gt; ayrıldı &quot;+&quot; ---------&quot;);
                        //kanaldan ayrılanı loglara kaydedelim
                        logger.Flush();
                    }
                    if (inputLine.Contains(&quot;KICK&quot;)) //eğer biri kanaldan atılırsa
                    {
                        char[] splitter = { ':', '!', ' ' };
                        //[0] = kanaldan atan
                        //[1] = atanın user stringi
                        //[2] = KICK (komut)
                        //[3] = hangi kanaldan atıldı
                        //[4] = kim atıldı
                        //[5] = neden atıldı(eğer belirtilmişse)
                        string[] message = inputLine.Split(splitter,6, StringSplitOptions.RemoveEmptyEntries);
                        logger.WriteLine(dt.ToShortTimeString()+&quot; --------- &lt;&quot; + message[0] + &quot;&gt; kicked &lt;&quot; +message[4]+&quot;&gt; ---------&quot;);
                        //atılanı loglara kaydedelim
                        logger.Flush();
                        if (Commander.checkAdmin(message[4])) //atılan adminse
                        {
                            Commander.admin = &quot;&quot;; //admini silelim ki birisi onun adını alıp botu kontrol edemesin
                        }
                    }
                }
            }
        }
    }
}
</pre>
<pre class="brush: csharp;">
    public static class Commander
    {
        public static string admin =&quot;&quot;; //adminimizin nicki
        public static void say(string where,string nickname,string message) //say komutu(nereye söylicek,kim söylemesini istiyor,ne söylicek)
        {
            if(checkAdmin(nickname)) //eğer söylemesini isteyen adminse
            {
                if (message.StartsWith(&quot;#&quot;)) //eğer geçerli kanaldan başka bir yere söylenmesi isteniyorsa
                {
                    char[] ayrac = { ' ' };
                    string[] msg = message.Split(ayrac, 2, StringSplitOptions.RemoveEmptyEntries);
                    where = msg[0]; //nereye söylicemizi değiştir
                    message = msg[1]; //mesajı değiştir
                }
                Connection.writer.WriteLine(&quot;PRIVMSG &quot; + where + &quot; :&quot; + message); //söyle
            }
            else
            {
                Connection.writer.WriteLine(&quot;PRIVMSG &quot;+nickname+&quot; : Yalnızca admin say komutunu kullanabilir&quot;);//eğer söyleten admin değilse
            }
            Connection.writer.Flush();
        }
        public static void quit(string nickname) //quit komutu (string kim_botun_cıkmasını_istiyor)
        {
            if(checkAdmin(nickname)) //eğer isteyen adminse
                Environment.Exit(0); //çık
        }
        public static void nick(string nickname,string nick) //nick komutu(string kim_botun_adını_değiştiriyor,string yeni_isim_ne_olack)
        {
            if(checkAdmin(nickname)) //eğer isteyen adminse
            {
                Connection.writer.WriteLine(&quot;NICK &quot; + nick); //servera nick değiştir komutu gönder
                Program.NICK = nick; //program classında kayıtlı nick stringini değiştir
            }
            else //isteyen admin değilse
            {
                Connection.writer.WriteLine(&quot;PRIVMSG &quot;+nickname+&quot; : Yanlızca admin bu komutu kullanabilir&quot;);
            }
            Connection.writer.Flush();
        }
        public static void join(string nickname,string where) //join komutu(string kim_botun_kanala_bağlanmasını_istiyor,string hangi_kanala)
        {
            if(checkAdmin(nickname)) //eğer isteyen adminse
                Connection.writer.WriteLine(&quot;JOIN &quot; + where); //kanala bağlan
            else //admin değilse
                Connection.writer.WriteLine(&quot;PRIVMSG &quot;+nickname+&quot; : Yanlızca admin bu komutu kullanabilir&quot;);
            Connection.writer.Flush();
        }
        public static void adminLogin(string who,string pass)//admin komutu(string kim_admin_olmak_istiyor,string şifre)
        {
            if (pass == Program.pass) //sifre dogruysa
            {
                admin = who; //sifreyi yollayanı admin olarak kaydet
                Connection.writer.WriteLine(&quot;PRIVMSG &quot; + who + &quot; :&quot; + &quot; Artık adminim sensin !&quot;); //yollayana admin olduğunu bildir
                Connection.writer.Flush();
            }
            else
            {
                Connection.writer.WriteLine(&quot;PRIVMSG &quot; + who + &quot; :&quot; + &quot; Şifre yanlış !&quot;); //yollayana şifrenin yanlış olduğunu bildir
                Connection.writer.Flush();
            }
        }
        public static bool checkAdmin(string nickname) //geçerli admini kotrol et
        {
            if (admin == nickname) //adminse true
            {
                return true;
            }
            else //değilse false döndür
            {
                return false;
            }
        }
    }
</pre>
<pre class="brush: csharp;">
public class PingSender
{
    static string PING = &quot;PING :&quot;; //ping stringimiz
    public Thread pingSender;
    public PingSender()
    {
        pingSender = new Thread(new ThreadStart(this.Run)); //threadimiz
    }
    public void Start()
    {
        pingSender.Start(); //threadi başlatalım
    }
    public void Run()
    {
        while (true)
        {
            Connection.writer.WriteLine(PING + Program.SERVER);
            Connection.writer.Flush();
            Thread.Sleep(15000); //15 sn aralıklarla sürekli ping gönderelim
        }
    }
}
</pre>
<p>isterseniz kendi komutlarınızı da yazabilirsiniz.Ben oyun için bazı özel komutlar yazdım(ip kayıt,kb/s&#8217;yi mbps&#8217;ye çevirme gibi&#8230;)onları buraya eklemedim.Zaten yeterince karışık gözüküyor birde onlar karıştırmasın dedim.Komutların herkes tarafından kullanılmasını isterseniz komutun başındaki &#8220;if(checkAdmin(nickname))&#8221; ifadelerini kaldırmanız yeterli.</p>
<p>Herkese iyi chatler <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  &#8230;</p>
<div id="_mcePaste" style="overflow:hidden;position:absolute;left:-10000px;top:468px;width:1px;height:1px;">public static class Connection<br />
{<br />
public static StreamWriter writer;<br />
public static NetworkStream stream;<br />
public static TcpClient irc;<br />
public static StreamReader reader;<br />
public static PingSender sender;<br />
public static StreamWriter logger;<br />
public static void connect()<br />
{<br />
irc = new TcpClient(Program.SERVER, Program.PORT);<br />
stream = irc.GetStream();<br />
reader = new StreamReader(stream);<br />
writer = new StreamWriter(stream);<br />
logger = new StreamWriter(Environment.CurrentDirectory + &#8220;\\log.txt&#8221;, true);<br />
logger.WriteLine(&#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8221;);<br />
logger.WriteLine();<br />
logger.WriteLine(&#8220;New season opened&#8230;&#8230;&#8230;&#8230;&#8230;.&#8221;);<br />
DateTime dt = DateTime.Now;<br />
logger.WriteLine(&#8220;Date = &#8220;+ dt.ToShortDateString() + &#8221; &#8221; + dt.ToShortTimeString() + &#8220;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8221; );<br />
logger.WriteLine(&#8220;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8221;);<br />
logger.Flush();<br />
logger.WriteLine();<br />
logger.WriteLine();<br />
//Parser.reader = reader;<br />
//Sender.writer = writer;<br />
// Start PingSender thread<br />
PingSender ping = new PingSender();<br />
ping.Start();<br />
writer.WriteLine(Program.USER);<br />
writer.Flush();<br />
writer.WriteLine(&#8220;NICK &#8221; + Program.NICK);<br />
writer.Flush();<br />
writer.WriteLine(&#8220;MODE &#8221; + Program.NICK + &#8221; +B&#8221;);<br />
writer.Flush();<br />
writer.WriteLine(&#8220;PRIVMSG nickserv :identify iamabot&#8221;);<br />
writer.Flush();<br />
Thread.Sleep(1000);<br />
writer.WriteLine(&#8220;JOIN &#8221; + Program.CHANNEL);<br />
writer.Flush();<br />
//writer.WriteLine(&#8220;PRIVMSG &#8221; + CHANNEL + &#8221; :&#8221; + &#8220; 5ohai all&#8221;);<br />
writer.Flush();<br />
String inputLine;<br />
while (true)<br />
{<br />
while ((inputLine = reader.ReadLine()) != null)<br />
{<br />
if (!inputLine.Contains(&#8220;PONG&#8221;)) Console.WriteLine(inputLine);<br />
#region privmsg<br />
if(inputLine.Contains(&#8220;PRIVMSG&#8221;))<br />
{<br />
char[] split = { &#8216;!&#8217;, &#8216; &#8216;, &#8216;:&#8217; };<br />
//[0] = nickname<br />
//[1] = user<br />
//[2] = PRIVMSG<br />
//[3] = where<br />
//[4] = prefix + command<br />
//[5] = values<br />
string[] message = inputLine.Split(split,6,StringSplitOptions.RemoveEmptyEntries);<br />
//foreach (string e in message) Console.WriteLine(e);<br />
if (message.Length &gt; 5)<br />
{<br />
Commander.checkForMyip(message[3], message[4] + message[5]);<br />
if(message[3]!=Program.NICK)<br />
logger.WriteLine(dt.ToShortTimeString() +&#8221; {&#8221; + message[3] + &#8220;}&#8221; + &#8220;&lt;&#8221; + message[0] + &#8220;&gt;&#8221; + &#8221; &#8221; + message[4] +&#8221; &#8221; + message[5]);<br />
else<br />
logger.WriteLine(dt.ToShortTimeString() +&#8221; {&#8221; + &#8220;PRIVATE MESSAGE&#8221; + &#8220;}&#8221; + &#8220;&lt;&#8221; + message[0] + &#8220;&gt;&#8221; + &#8221; &#8221; + message[4] + &#8221; &#8221; + message[5]);<br />
}<br />
else<br />
{<br />
Commander.checkForMyip(message[3], message[4]);<br />
if (message[3] != Program.NICK)<br />
logger.WriteLine(dt.ToShortTimeString()+&#8221; {&#8221; + message[3] + &#8220;}&#8221; + &#8220;&lt;&#8221; + message[0] + &#8220;&gt;&#8221; + &#8221; &#8221; + message[4]);<br />
else<br />
logger.WriteLine(dt.ToShortTimeString()+&#8221; {&#8221; + &#8220;PRIVATE MESSAGE&#8221; + &#8220;}&#8221; + &#8220;&lt;&#8221; + message[0] + &#8220;&gt;&#8221; + &#8221; &#8221; + message[4]);<br />
}<br />
logger.Flush();<br />
if (message[4] == Program.prefix + &#8220;say&#8221;)<br />
{<br />
Commander.say(message[3],message[0], message[5]);<br />
}<br />
if (message[4] == Program.prefix + &#8220;join&#8221;)<br />
{<br />
Commander.join(message[0],message[5]);<br />
}<br />
if (message[4] == Program.prefix + &#8220;mbit&#8221;)<br />
{<br />
try<br />
{<br />
if(message[3].StartsWith(&#8220;#&#8221;))<br />
Commander.mbit(message[3], message[5]);<br />
else<br />
{<br />
Commander.mbit(message[0], message[5]);<br />
}<br />
}<br />
catch (Exception e)<br />
{<br />
writer.WriteLine(&#8220;PRIVMSG &#8221; + message[3] + &#8221; :wrong syntax!&#8221;);<br />
writer.Flush();<br />
}<br />
}<br />
if (message[4] == Program.prefix + &#8220;quit&#8221;)<br />
{<br />
writer.WriteLine(&#8220;Quit&#8221;);<br />
writer.Flush();<br />
Commander.quit(message[0]);<br />
}<br />
if (message[4] == Program.prefix + &#8220;myip&#8221;)<br />
{<br />
try<br />
{<br />
Commander.myip(message[0], message[3], message[5]);<br />
}<br />
catch (Exception e)<br />
{<br />
writer.WriteLine(&#8220;PRIVMSG &#8221; + message[3] + &#8221; :&#8221; + &#8220;Syntax wrong! Using like &#8220;<br />
+ Program.prefix + &#8220;myip add first octets | list | del | clear&#8221;);<br />
writer.Flush();<br />
}<br />
}<br />
if (message[4] == Program.prefix + &#8220;ignore&#8221;)<br />
{<br />
try<br />
{<br />
Commander.ignore(message[5]);<br />
}<br />
catch (Exception e)<br />
{<br />
writer.WriteLine(&#8220;PRIVMSG &#8221; + message[3] + &#8221; :&#8221; + &#8220;Syntax wrong! Using like &#8220;<br />
+ Program.prefix + &#8220;ignore someone&#8221;);<br />
writer.Flush();<br />
}<br />
}<br />
if (message[4] == Program.prefix + &#8220;unignore&#8221;)<br />
{<br />
try<br />
{<br />
Commander.unignore(message[5]);<br />
}<br />
catch (Exception e)<br />
{<br />
writer.WriteLine(&#8220;PRIVMSG &#8221; + message[3] + &#8221; :&#8221; + &#8220;Syntax wrong! Using like &#8220;<br />
+ Program.prefix + &#8220;unignore someone&#8221;);<br />
writer.Flush();<br />
}<br />
}<br />
if (message[4] == Program.prefix + &#8220;admin&#8221;)<br />
{<br />
try<br />
{<br />
Commander.adminLogin(message[0],message[5]);<br />
}<br />
catch (Exception e)<br />
{<br />
writer.WriteLine(&#8220;PRIVMSG &#8221; + message[0] + &#8221; :&#8221; + &#8220;How can i know u are my master or not without a password!&#8221;);<br />
writer.Flush();<br />
}<br />
}<br />
}<br />
#endregion<br />
#region nick,part,quit etc&#8230;<br />
if (inputLine.Contains(&#8220;NICK&#8221;))<br />
{<br />
char[] splitter = { &#8216;:&#8217;, &#8216;!&#8217;, &#8216; &#8216; };<br />
//[0] = nickname<br />
//[1] = user<br />
//[2] = nick<br />
//[3] = new nickname<br />
string[] message = inputLine.Split(splitter, StringSplitOptions.RemoveEmptyEntries);<br />
logger.WriteLine(dt.ToShortTimeString() +&#8221; &#8212;&#8212;&#8212; &lt;&#8221; + message[0] + &#8220;&gt; changed his nick to &lt;&#8221; + message[3] + &#8220;&gt; &#8212;&#8212;&#8212;&#8221;);<br />
logger.Flush();<br />
Console.WriteLine(&#8220;Someone changed his name&#8221;);<br />
if (Commander.checkAdmin(message[0]))<br />
{<br />
Console.WriteLine(&#8220;OMG its my admin!&#8221;);<br />
Commander.admin = message[3];<br />
Console.WriteLine(&#8220;Admin name \&#8221;"+message[0]+&#8221;\&#8221; changed to \&#8221;"+message[3]+&#8221;\&#8221;");<br />
}<br />
}<br />
if (inputLine.Contains(&#8220;QUIT&#8221;) || inputLine.Contains(&#8220;PART&#8221;))<br />
{<br />
string who = inputLine.Substring(1, inputLine.IndexOf(&#8216;!&#8217;));<br />
Console.WriteLine(&#8220;Someone quit or part&#8221;);<br />
if (Commander.checkAdmin(who))<br />
{<br />
Console.WriteLine(&#8220;OMG its my admin!&#8221;);<br />
Commander.admin = &#8220;&#8221;;<br />
Console.WriteLine(&#8220;Admin name \&#8221;" + who + &#8220;\&#8221; changed to &#8221; + &#8220;\&#8221;\&#8221;");<br />
}<br />
logger.WriteLine(dt.ToShortTimeString()+&#8221; &#8212;&#8212;&#8212; &lt;&#8221; + who + &#8220;&gt; leaved &#8220;+&#8221; &#8212;&#8212;&#8212;&#8221;);<br />
logger.Flush();<br />
}<br />
if (inputLine.Contains(&#8220;KICK&#8221;))<br />
{<br />
char[] splitter = { &#8216;:&#8217;, &#8216;!&#8217;, &#8216; &#8216; };<br />
//[0] = kicker<br />
//[1] = kicker user string<br />
//[2] = KICK<br />
//[3] = kick from where<br />
//[4] = who kicked<br />
//[5] = kick reason<br />
string[] message = inputLine.Split(splitter,6, StringSplitOptions.RemoveEmptyEntries);<br />
logger.WriteLine(dt.ToShortTimeString()+&#8221; &#8212;&#8212;&#8212; &lt;&#8221; + message[0] + &#8220;&gt; kicked &lt;&#8221; +message[4]+&#8221;&gt; &#8212;&#8212;&#8212;&#8221;);<br />
logger.Flush();<br />
Console.WriteLine(&#8220;Someone kicked&#8221;);<br />
if (Commander.checkAdmin(message[4]))<br />
{<br />
Console.WriteLine(&#8220;OMG its my admin!&#8221;);<br />
Commander.admin = &#8220;&#8221;;<br />
Console.WriteLine(&#8220;Admin name \&#8221;" + message[4] + &#8220;\&#8221; changed to &#8221; + &#8220;\&#8221;\&#8221;");<br />
}<br />
}<br />
#endregion<br />
}<br />
}<br />
}<br />
}</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/10urshin.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/10urshin.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/10urshin.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/10urshin.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/10urshin.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/10urshin.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/10urshin.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/10urshin.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/10urshin.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/10urshin.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/10urshin.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/10urshin.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/10urshin.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/10urshin.wordpress.com/30/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=10urshin.wordpress.com&amp;blog=10914160&amp;post=30&amp;subd=10urshin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://10urshin.wordpress.com/2009/12/17/c-ile-irc-botu-seruvenim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d0a314adfee917168a703106b776211?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">satranj</media:title>
		</media:content>
	</item>
		<item>
		<title>Java Tek bağlı listelerde sıralama algoritmaları(Insertion ve Selection)</title>
		<link>http://10urshin.wordpress.com/2009/12/12/java-tek-bagli-listelerde-siralama-algoritmalariinsertion-ve-selection/</link>
		<comments>http://10urshin.wordpress.com/2009/12/12/java-tek-bagli-listelerde-siralama-algoritmalariinsertion-ve-selection/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 08:23:46 +0000</pubDate>
		<dc:creator>10uR</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[insertion sort]]></category>
		<category><![CDATA[selection sort]]></category>
		<category><![CDATA[sigly-linked list]]></category>
		<category><![CDATA[sıralama]]></category>
		<category><![CDATA[tek bağlı liste]]></category>

		<guid isPermaLink="false">http://10urshin.wordpress.com/?p=7</guid>
		<description><![CDATA[Veri yapıları ödevim olan tek bağlı listelerde insertion ve selection sort yapan java programı&#8230; Programın çalışması şöyle : önce yeni bir tek bağlı liste oluşturuyoruz.Bu bağlı listeyi oluştururken kullanıcıdan kaç elemanlı bir liste oluşturmak istediğini sorup,istenilen sayıda random eleman atıyoruz.Bu listeyi ekrana çiziyoruz.Kullanıcıya insertion yada selection sort&#8217;tan birini başlatmasını bekliyoruz.Kullanıcının seçtiği sıralama yöntemine göre listeyi <a href="http://10urshin.wordpress.com/2009/12/12/java-tek-bagli-listelerde-siralama-algoritmalariinsertion-ve-selection/" class="excerpt-more-link">[&#8230;]</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=10urshin.wordpress.com&amp;blog=10914160&amp;post=7&amp;subd=10urshin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:left;">Veri yapıları ödevim olan tek bağlı listelerde insertion ve selection sort yapan java programı&#8230;</p>
<p style="text-align:left;"><span id="more-7"></span><br />
Programın çalışması şöyle : önce yeni bir tek bağlı liste oluşturuyoruz.Bu bağlı listeyi oluştururken kullanıcıdan kaç elemanlı bir liste oluşturmak istediğini sorup,istenilen sayıda random eleman atıyoruz.Bu listeyi ekrana çiziyoruz.Kullanıcıya insertion yada selection sort&#8217;tan birini başlatmasını bekliyoruz.Kullanıcının seçtiği sıralama yöntemine göre listeyi sıralıyoruz.Sıralamaları yaparken önümüzde 2 seçenek var 1incisi dizinin içindeki düğümlerin(node) değerlerini değiştirmek, diğeri ise düğümlerin bağlarını koparıp daha sonra uygun yere yerleştirmek.Ben ikinci seçeneği uyguladım.</p>
<p style="text-align:left;">Gelelim kodlara&#8230;</p>
<p style="text-align:left;">
<p>Veri classım :</p>
<pre class="brush: java;">
public class Veri {
    int boy;
    String isim;

    public Veri(int boy, String isim) {
        this.boy = boy;
        this.isim = isim;
    }
}
</pre>
<p>Node(düğüm) classım :</p>
<pre class="brush: java;">
public class Node{
    Veri veri;
    Node sonraki;

    public Node(int boy, String isim, Node sonraki) {
        veri = new Veri(boy,isim);
        this.sonraki = sonraki;
    }
    public Node(Node node){
        this.veri = node.veri;
        this.sonraki=node.sonraki;
    }
}
</pre>
<p>Liste classım :</p>
<pre class="brush: java;">
public class Liste {
    Node head;
    int size = 0;
    public Liste() {}

    public void ekle(String isim,int yas){
        Node yeniNode = new Node(yas, isim,null);
        if(head == null){
            head = yeniNode;
        }
        else{
            Node araNode = head;
            while(araNode.sonraki != null){
                araNode = araNode.sonraki;
            }
            araNode.sonraki = yeniNode;
        }
        size++;
    }
    public void ekle(Node yeniNode){
        yeniNode.sonraki=null;
        if(head == null){
            head = yeniNode;
        }
        else{
            Node araNode = head;
            while(araNode.sonraki != null){
                araNode = araNode.sonraki;
            }
            araNode.sonraki = yeniNode;
        }
        size++;
    }

    public Node oncekiniBul(Node node){
        if(node == head){
            return null;
        }
        else{
            Node araNode = head;
            while(araNode.sonraki!=node){
                araNode = araNode.sonraki;
            }
            return araNode;
        }
    }
}
</pre>
<p>Şimdi sıra geldi asıl iş yapan kodlara.Burda bütün kodları vermek yerine sadece sıralama kısmını yapan kodları vercem.Bütün kodları yazının sonundaki bağlantıdan indirebilirsiniz&#8230;</p>
<pre class="brush: java;">

    void insertionSort(){
        Node aktif = liste.head.sonraki; //aktifi headden sonrakinden başlat
            while(aktif != null){
                Node gezici = liste.head; //geziciyi headden başlat(geri gitme yok!)
                while(gezici!=aktif &amp;&amp; karsilastir(aktif.veri, gezici.veri)){
                    //gezici aktif değilken ve aktifin verisi geziciden buyukse(seçili karşılaştırmaya göre) dön
                    gezici=gezici.sonraki;
                }
                Node aranode = aktif.sonraki; //aktifin sonrakinii aranodda tut(birazdan ustune yazılcak!!)
                if(aktif != gezici){
                    tasi(gezici,aktif); //aktifi gezicinin arkasına taşı
                }
                aktif = aranode; //aranodu aktif yap
                cizTumListe(liste);
            }
    }

    void tasi(Node gezici,Node aktif){
        if(gezici.sonraki == aktif){
            //geziciden 1 sonraki aktif ise (bu işlem gerekli çünkü normal prosedur bu durumda uygulandığında gezicinin ustune yazar!!)
            Node gezicininOnceki = liste.oncekiniBul(gezici); //gezicinin oncekini bul
            gezici.sonraki = aktif.sonraki;
            if(gezicininOnceki!= null) //gezici head değilse
                gezicininOnceki.sonraki = aktif;
            else liste.head = aktif;//gezici headse head de değişmeli!!
            aktif.sonraki = gezici;
        }
        else{
            Node aktifinonceki = liste.oncekiniBul(aktif);
            Node gezicininOnceki = liste.oncekiniBul(gezici);
            if(gezicininOnceki==null){ //gezici head se head değişmeli!!
                liste.head = aktif;
            }
            else{
                gezicininOnceki.sonraki = aktif; //değilse oncesini değiştir
            }
            aktifinonceki.sonraki = aktif.sonraki;
            aktif.sonraki = gezici;
        }

    }

    void selectionSort(){
        Node aktif = liste.head; //aktifi headden başlat
        while(aktif!=null){
            try {
                Node en = aktif; //eni aktiften başlat(aktiften öncesi zaten sıralı o yuzden kontrol edilmicek
                for (Node gezici = aktif.sonraki; gezici != null; gezici = gezici.sonraki) {
                    if (karsilastir(en.veri, gezici.veri)) { //karsılastırmaya gore en in verisi geziciden buyukse
                        en = gezici; //geziciyi en yap
                    }
                }
                aktif = swap(en,aktif);//en ve aktifi swap et,yeni aktifi al
                cizTumListe(liste);//tum listeyi baştan ciz
            }
        }
    }

    Node swap(Node en,Node aktif){
        if (en == aktif) { //değiştirme yapılmicak aynen devam
            aktif = aktif.sonraki;
        }
        else if (aktif.sonraki == en) { //kontrol edilmeli(normal prosedur aktifin ustune yazıyor!!)
            Node aktifinOnceki = liste.oncekiniBul(aktif);
            if (aktifinOnceki != null) { //aktif headmi kontrol et değilse
                aktifinOnceki.sonraki = en;
            } else { //aktif head se
                liste.head = en; //listenin headi değişmeli
            }
            aktif.sonraki = en.sonraki;
            en.sonraki = aktif;
        }
        else {
            Node aktifinOnceki = liste.oncekiniBul(aktif);
            Node eninOnceki = liste.oncekiniBul(en);
            if (aktifinOnceki == null) { //aktifin headmi kontrol et headse
                Node araNode = aktif.sonraki;
                aktif.sonraki = eninOnceki.sonraki.sonraki;
                en.sonraki = araNode;
                liste.head = en;
                eninOnceki.sonraki = aktif;
                aktif = en.sonraki;
            } else { //aktifin onceki head değilse
                Node araNode = aktif.sonraki;
                aktif.sonraki = en.sonraki;
                en.sonraki = araNode;
                eninOnceki.sonraki = aktif;
                aktifinOnceki.sonraki = en;
                aktif = en.sonraki;
            }
        }
        return aktif; //yeni aktifi dondur
    }

    boolean karsilastir(Veri a,Veri b){
        return ismeGore.isSelected() ?  BuyuktenKucuge.isSelected() ?
            a.isim.compareToIgnoreCase(b.isim)&lt;0 : a.isim.compareToIgnoreCase(b.isim)&gt;0 :
            BuyuktenKucuge.isSelected() ? a.boy&lt;b.boy : a.boy&gt;b.boy;
        //  isme gore seciliyse
        //      buyukten kucuge seciliyse a.isim &lt; b.isim
        //      buyukten kucuge secili değilse a.isim &gt; b.isim
        //  isme gore secili değilse
        //      buyukten kucuge seciliyse a.boy &lt; b.boy
        //      buyukten kucuge secili değilse a.boy &gt; b.boy
    }
}
</pre>
<p>programın çalışmasını görmek için <a title="buraya tıklayın." href="http://www.screentoaster.com/watch/stVkJVQEBIR19fRVtaU1xQVlZc/sorting_program">buraya tıklayın.</a></p>
<p>kaynak kodları <a title="Kaynak kodlar" href="http://www.box.net/shared/ef2n2h52y0"> buradan </a> indirebilirsiniz.</p>
<p>programın çalıştırılabilir halini <a title="Çalıştırılabilir" href="http://www.box.net/shared/8v76qyf5r7"> buradan </a> indirebilirsiniz.</p>
<p>programda anlamadığınız yer olursa sorabilirsiniz yada daha iyi yapabilirdin gibi öneriz varsa söyleyebilirsiniz.Eleştirmekten çekinmeyin daha dün programı hocaya sunarken bir yığın laf işittim çok karışık yazmışsım diye <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  rahat olun yani.program ustunde değişiklik yaparsanız yeni halini kaynak <a title="Kaynak kodlar" href="http://www.box.net/shared/ef2n2h52y0"> kodlar linkine </a>eklerseniz yaptığınız değişiklikleri bizde görebiliriz&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/10urshin.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/10urshin.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/10urshin.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/10urshin.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/10urshin.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/10urshin.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/10urshin.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/10urshin.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/10urshin.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/10urshin.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/10urshin.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/10urshin.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/10urshin.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/10urshin.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=10urshin.wordpress.com&amp;blog=10914160&amp;post=7&amp;subd=10urshin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://10urshin.wordpress.com/2009/12/12/java-tek-bagli-listelerde-siralama-algoritmalariinsertion-ve-selection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d0a314adfee917168a703106b776211?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">satranj</media:title>
		</media:content>
	</item>
		<item>
		<title>&#8230;Yaz Boz Nedir?&#8230;</title>
		<link>http://10urshin.wordpress.com/2009/12/11/yazboz/</link>
		<comments>http://10urshin.wordpress.com/2009/12/11/yazboz/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 18:41:13 +0000</pubDate>
		<dc:creator>10uR</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Elazığ Fırat Universitesi Bilgisayar Mühendisliği 2.sınıf öğrencisi bendeniz Onur Şahin, bir blog açma isteği duyunca Yaz Boz çıktı ortaya. Yaz Boz&#8217;da yazdığım programları,bulduğum püf noktaları vb. paylaşıcam&#8230; Bildiğim programlama dilleri : Java(iyi),C#(iyi-orta) Ögrendiğim diller : Xna(başlangıç),python(başlangıç)<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=10urshin.wordpress.com&amp;blog=10914160&amp;post=1&amp;subd=10urshin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;">Elazığ Fırat Universitesi Bilgisayar Mühendisliği 2.sınıf öğrencisi bendeniz Onur Şahin, bir blog açma isteği duyunca <a title="Yaz Boz" href="http://10urshin.wordpress.com" target="_self">Yaz Boz</a> çıktı ortaya. <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align:center;">Yaz Boz&#8217;da yazdığım programları,bulduğum püf noktaları vb. paylaşıcam&#8230;</p>
<p style="text-align:center;">Bildiğim programlama dilleri : Java(iyi),C#(iyi-orta)</p>
<p style="text-align:center;">Ögrendiğim diller : Xna(başlangıç),python(başlangıç)</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/10urshin.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/10urshin.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/10urshin.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/10urshin.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/10urshin.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/10urshin.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/10urshin.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/10urshin.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/10urshin.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/10urshin.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/10urshin.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/10urshin.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/10urshin.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/10urshin.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=10urshin.wordpress.com&amp;blog=10914160&amp;post=1&amp;subd=10urshin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://10urshin.wordpress.com/2009/12/11/yazboz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d0a314adfee917168a703106b776211?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">satranj</media:title>
		</media:content>
	</item>
	</channel>
</rss>
