Tweet

Ruby TCP/IP

Öncelikle linux işletim sistemi üzerinde yazıyor olmamın nedeniyle anlatımı linux üzerinden anlatacağım.Kodları rahatlıkla windows işletim sisteminizdede deneyerek uygulayabilirsiniz..

Linux kullanıcıları için sisteminizde ruby yüklü olmadığını varsayarak ;

Ubuntu kullanıcıları : Uçbirim > sudo apt-get install ruby
Fedora kullanıcıları : sudo yum install ruby
[...]
Farklı sistem kullananlar lütfen sistemlerinde ruby paketlerinin hali hazırda yüklü olup olmadığını kontrol etsinler.

Şİmdi tcp/ip üzerine ilk akla gelen client/server yapısıdır çoğu zaman( Uygulamalar açısından)

Server tarafının görevleri bağlantı kurmak ve balantıları dinlemek.Ek olarak cliente isteğe bağlı ileti yollamak veya yön vermektir.

Client'in yapısına baktığımızda ise bağlantıyı kurmak,mesaj göndermek,sunucudan mesaj almak,server ile bağlantıyı sonlandırmak.

İlk öncelikle eklememiz gereken betik socket dir.Bütün tcp/ip trafiği soketler üzerinden işlemektedir.Sunucudan gelecek istekleri kabul etmek veya bir bağlantı sağlamak soketler ile olacaktır..

Kodlarımıza geçelim.Gerekli açıklamaları yorum etiketleri ile belirteceğim..

CODE:
#! /usr/bin/ruby

require 'socket'

puts "Sunucuyu başlattık"

# Bağlantı kurduk
# Bağlantı noktası oluşturmamız gerekiyor 2009 olaral belirleyelim

server = TCPServer.new(2009)

#Bağlantıları kabul edelim ve dinlemeye alalım

while (session = server.accept)

# thread oluşturacağız ve başlatacağız

Thread.start do

# Bağlantının oluştuğunu göstermek için çıktı içerisinde fonksiyonumuzu yazalım

puts "çıktı: Bağlantı # {session.preeaddr[2]} at
#{session.preeaddr[3]}"
puts "Client'inden"

input = session.gets
puts input

#Karşılama mesajı verelim
session.puts "Server : Hoşgeldiniz # {session.preeaddr{2]}n"

#Çıkış mesajı verelim

puts "çıktı:Hoşçakalın"
session.puts "Server: Hoşçakalınn"

end # thread larımızı sonlandırdık
end # Döngüyü sonlandırdık


Şİmdide Client'e bakalım..

CODE:
#!/ usr/bin/ruby

require 'socket'

clientSession = TCPSocket.new( "localhost" ,2009 )

puts "çıktı: Bağlantı sağlandı"

puts "çıktı:Selam"
clientSession.puts "Client: Selam Server!n"

while ! (clientSession.closed?) &&
(serverMessage = clientSession.gets)

puts serverMessage

# Bağlantıyı kapatalım ve mesaj verelim

if serverMessage.include?("Hoşçakalın")
puts "çıktı: Bağlantı Sona erdi"
clientSession.close
end
end # Döngüyü sonlandırdık


Üstteki server.rb şeklinde kayıt edin. Alttakini ise client.rb şeklinde kayıt edin.
Öncelikle server ı başlatın.Daha sonra clienti başlatabilirsiniz.Kolay gelsin.


Oguzz.. thecoders.net


Oguzz
oguz@thecoders.net
23 Ekim 2007 11:33

İlgili Olabilecek Makaleler


Yorumlar (0)




Ziyaretçi olarak yorum yazamazsınız. Üye olmak için tıklayın Üye iseniz giriş yapın.



MENÜ » FORUM
Menü » Takip et
RSS Facebook Twitter Friendfeed
Sık Kullanılanlar Google Yahoo Live
Menü » Paylaş
E-Posta ile gönder Twitter Facebook Friendfeed
Buzz Stumbleupon Delicious Digg