Burda socketla nasıl web sitelerine bağlanıldığını ve bilgi alınacağını anlatmaya çalışacağım. Socketlarla ilgili hiç bir bilginiz yoksa bile bu döküman sayesinde biraz da olsa bilginiz olacak.

Giriş: Daha önce socketları addonlarda ya da scriptlerde muhtemelen görmüşsünüzdür, belki onları kullanmaya çalışmış fakat başarılı olamamışsınızdır. Durum her neyse socketlar mIRC’de gerçekten önemli bir yer tutuyorlar. Socketlar bir çok şey için kullanılsada burda web sitelerine bağlanmak ve gerekli bilgiyi almak üzere anlatacağım. İşte başlıyoruz..

Socketı açmak: Web sitesine bağlanma sürecini başlatmak için öncelikle bir socket açmak zorundayız. Bu /sockopen komutuyla yapılıyor.

/sockopen <socket-ismi> <adres> <port>
<socket-ismi> socketınıza vereceğiniz ismi belirtir. Aklınızda kalan ve alacağınız bilgiyle alakalı olan bir isim vermekte fayda var.
<adres> Adres socketınızın bağlanacağı adrestir. Buraya sadece domaini yazmalısınız. Örneğin www.domainim.com/text.html’ye bağlanacaksanız sadece domainim.com yazsanız yeterli olacaktır.
<port> Bağlanacağınız adresin portu. Web sitesinden bilgi alıyorsanız bu port genelde 80′dir.

on SOCKOPEN durumu: Socketi /sockopen la belirli adres ve portla açtıktan sonra gereken olayları on sockopen durumunda yapıyoruz. Socketa sitedeki hangi sayfaya gideceğini söylemeliyiz. Bunu başka bir socket komutu olan /sockwrite la yaparız. Bu durumda /sockwrite GET i ve HTTP/1.1 ya da HTTP/1.0′ı kullanırız istediğimiz sayfaya gitmek için. HTTPler için endişelenmeyin. HTTP/1.1′i kullanın :-) İşte örnek bir socket açıldığında on sockopen durumunda yapılması gerekenler:

Örneğin domainim.com’a bağlandık /sockopen komutuyla ve orda www.domainim.com/isimler.txt dosyasından bir şeylere bakacağız bunun için aşağıdakini remote’a koyuyoruz.

on *:sockopen:<socket-ismi>:{
sockwrite -n $sockname GET /isimler.txt HTTP/1.1
;Bu sockete belirtilen sayfada GET’i kullanmasını ve isimler.txt dosyasına gitmesini söylüyor
sockwrite -n $sockname Host: domainim.com $+ $crlf $+ $crlf
;Burda hostu tekrar belirtiyoruz.
}

Eğer ana sayfadan yani domainim.com dan bilgi alacaksanız /isimler.txt yerine sadece / [slash] koyuyoruz. (sockwrite -n $sockname GET / HTTP/1.1)

/sockwrite -n <socket-ismi> <text>

<socket-ismi>’ni yukarda anlattığım gibi belirlemiştik onu yazıyoruz ya da sadece $sockname kullanıyoruz. text ise web sitesine göndermiş olduğumuz yazı.

on SOCKOPEN durumuyla gereken bilgileri [hangi sayfayı görmek istediğimizi] web sitesine gönderdik şimdi o bilgileri okumada sıra.

Bilgileri okuma: Şimdiye kadar socketımız istediğimiz siteye bağlandı [www.domain.com/isimler.txt]. Şimdi sıra on SOCKREAD durumunu kullanarak isimler.txt’ten bilgiyi almada. Bu durum web sitesinden her satır geldiğinde kullanılır. Örneğin isimler.txt’te 50 satır varsa on SOCKREAD durumu 50 kez çalışacaktır. HTML sitesine bağlandıysanız html kodlarıyla beraber tüm içerik gelecektir.
Örnek bir sockread durumu aşağıdaki gibidir.

Kod:
on *:sockread:<socket-ismi>:{
if ($sockerr) {
	echo -a Hata!
	halt
}
else {
	var %temptext
	sockread %temptext
	echo -a %temptext
}
}

$sockerr identifierı socketta bir hata olduğunda çıkacaktır, bu hata varsa socket otomatik olarak kapatılacağından yapacağımız işlemleri bitirmek için halt kullandık, eğer hata yoksa devam ettik ve çıkan bilgileri aktif pencereye echoladık.
Bundan sonra if durumlarını kullanarak aktif pencereye çıkan sonuçlardan istediğinizi kullanabilirsiniz.


Aşağıdaki kod html kodlarını temizler, kullanımı $htmlfree(%temptext)

alias htmlfree {

var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x,&nbsp;)
return %x
}

Umarım socketları biraz da olsa anlamışsınızdır..
Bol şans.