Port Nedir?
Bilgisayar ve telekomünikasyon dünyasında

"port" denildiği zaman akla ilk
gelen genellikle fiziksel bağlantıda kullanılan ara birimlerdir. Bu tür "port"
lar üzerinden bağlanmış herhangi bir makinaya "data" gönderilebilir ve bu
makinanın işleyişi kontrol edilebilir. Örneğin

tipik bir bilgisayarda bir veya
birden fazla "seri port" bir tane de "paralel port" bulunur. Adından da
anlaşılacağı gibi "seri port" dan bilgiler seri (her defasında bir bit) olarak
gönderilir ve bu tür "port" lara genellikle tarayıcı (scanner) gibi cihazlar
takılır. Her defasında birden çok bit göndermek içinse "paralel port" kullanı-
lır. Bu tip "port" lara da yazıcı (printer) veya "paralel port" bağlantısı olan
herhangi bir cihaz takılabilir.
Bizi ilgilendiren ve çoğunlukla İnternet dünyasında kullanılan "port"
kavramı ise yukardaki tanımdan biraz daha soyut bir kavramdir. Bu anlamda "port"
(ki dokümainin sonuna kadar "port" bu anlamda kullanılacaktir) herhangi bir
fiziksel bağlantı yeri değil

mantıksal bir bağlanma şeklidir. Şöyle ki:
Günümüz dünyasında birçok işletim sistemi birden fazla programın aynı anda
çalışmasına izin vermektedir. Bu programlardan bazıları dışarıdan gelen
istekleri (istemci-client/request) kabul etmekte ve uygun gördüklerine cevap
(sunucu-server/response) vermektedir. Sunucu programları çalışan bilgisayarlara
birer adres verilir (bknz. IP adresleri) ve bu adresler kullanılarak istenilen
bilgisayarlara ulaşılır. Peki

ulaşılan bir bilgisayar üzerindeki hangi sunucu
programdan hizmet alınmak istendiği nasıl belirtilir?
Bunun için bilgisayarlar üzerinde birtakım soyut bağlantı noktaları
tanımlanır ve herbirine

adresleyebilmek için positif bir sayı verilir (port
numarası). Bazı sunucu programları

daha önce herkes tarafından bilinen "port"
lardan hizmet verirken (örn: telnet->23. port) bazıları da sunucu programını
çalıştıran kişinin türüne ve isteğine göre değişik "port" lardan hizmet verir.
Dolayısıyla

ağ üzerindeki herhangi bir sunucu programa bağlanmak istenildiğin-
de

programın çalıştığı bilgisayarın adresinin yanında istekleri kabul ettiği
"port" numarasını da vermek gerekir. Örnek verecek olursak:
144.122.156.104 "IP" adresine sahip makinada (orca) çalışan "telnet"
sunucu programına (23. "port" dan hizmet veren) bağlanmak için aşağıdaki satır
yazılır.
telnet 144.122.156.104 23
Daha önce de belirttiğimiz gibi bazı sunucu programların belirli "port"
lardan hizmet verdiği bilindiği için

bu sunuculara bağlanmak istediğimizde
"port" numarasını vermeye gerek kalmaz. Bu durumda yukardaki satır
telnet 144.122.156.104
şeklinde de yazılabilir.
Bilgisayar ilk açıldığında üzerinde çalışan sunucu programlar otomatik
olarak açılış dosyalarından çalıştırılabildiği gibi genel kullanım biraz daha
farklıdır.
Değişik "port" ları dinleyen birçok sunucu programın

hiçbir istemciye
cevap vermediği durumda bile

birçok sistem kaynağını gereksiz yere kullandığı
düşünülerek

"inetd" adında istemcilerle diğer sunucu programlar arasında
koordinasyonu sağlayan bir sunucu program düşünülmüştür. Açılış dosyalarından
da başlatılabilen bu sunucu tek başına bütün "port" ları dinler ve herhangi
birisine istek geldiği zaman aşağıdaki prosedürü takip eder:
1- /etc/services dosyasından ilgili "port" a hizmet veren servis ismini
bulur.
2- konfigürasyon dosyası olan "/etc/inetd.conf" dan bu servis için gelen
isteğe nasıl cevap vereceğini belirler ve gerekli programı çalıştırır.
3- bir istek geldiği zaman tekrar 1'e döner.
Paralel portun kullanım amacı ve üstünlükleri
Bir bilgisayar tek başına bilgi toplama ve değerlendirmek için kullanılabilir. Örneğin herhangi bir cihazın veya cihazın bulunduğu ortamın sıcaklığı zamanın fonksiyonu olarak kaydedilmek istenebilir. Ancak algılayıcılardan elde edilen bilgi bir arayüz kartı ile işlendikten sonra bilgisayara iletilmesi gerekmektedir. Peki işlemci dışardan gelen bu ham bilgileri kimin aracılığı ile alacaktır? Seçeneklerden birisi paralel porttur

diğer alternatiflere de ilerleyen konularda değinilecektir.
Paralel portun kullanımı bize ne gibi üstünlükler sunar?
Günümüzde bilgisayarla bilgi iletişimi anakarta takılan PCI

AGP (ekran kartları için) ve SCSI kartları ile gerçekleştirilmektedir. Daha eski model kişisel bilgisayarlarda ISA olarak bilinen kartlar da kullanılmakta idi. Ancak bu tip kartlarla çalışmak beraberinde bir çok dezavantaj da getirmektedir. Bu dezavantajları sırasıyla açıklayalım:
• Bilgisayar anakartına ait yuvalara (slot) takılan kartların laboratuar ortamında sökülüp takılmaları oldukça büyük sorunlara neden olabilir. Hatta bazı durumlarda tüm bilgisayar sisteminin zarar görmesi olasıdır.
• Tüm bilgisayar anakartları eşit sayıda yuvaya sahip değildir ve üstelik dizüstü bilgisayarlarda bu tip kartların oturacağı bir yuva (PCMCIA hariç) söz konusu değildir.
En çok öne çıkan üstünlükleri ise:
• Çoğu uygulamada basit ve ekonomik çözümler yeterli gelmekte ve bu yüzden tercih edilmektedirler.
Paralel port giriş ve çıkışları TTL (5v-0v) seviyesinde olduğu için fazladan gerilim dönüştürme entegrelerine ihtiyaç duymadan çoğu elektronik sistemle haberleşebilir.
• Paralel port üstte açıklanan bazı dezavantajlardan dolayı aranan en iyi alternatiflerden birisidir. Paralel port tüm PC sistemlerde standarttır ve mevcuttur. Her ne kadar çeşitli seri arabirimlerin (USB

Firewire) yaygılaşmasıyla önemini biraz kaybetse de sahip olduğu basitlik ve ekonomiklik bu portun uzun süreler PC standardında mevcut olacağını göstermektedir.
Paralel port 25 adet dişi pine sahiptir ve DB-25F olarak adlandırılır. Bu porta takılacak cihazın yine 25 pine sahip olması ancak erkek pinlere sahip olması gerekir. Her bir pinin hangi işleve sahip olduğu ilerleyen kısımlarda belirtilecektir
Paralel port

endüstride farklı isimlerle anılır: paralel port

paralel yazıcı adaptörü

Centronics adaptörü

Centronics port. Aslında paralel port kavramı bilgileri paralel olarak ileten bir iletişim mekanizmasını tanımlar. Ancak paralel port deyimi kişisel bilgisayarlara yazıcıların bağlantısını sağlayan arabirim olarak anlaşılmaktadır. Örneğin PC içerisindeki IDE konnektörü ve kablosu da paralel bir porttur.
Paralel portun tasarım amacının bilinmesi onun yapısını daha kolay anlamamıza yardım edecektir. Aslında paralel port bilgisayardan gönderilen verilerin bir yazıcıya aktarılması için tasarlanan bir arayüzdür. Bilgisayar ile yazıcı arasındaki veri iletimini sağlayacak bir arayüz tasarlanırken aşağıdaki en önemli üç unsur göz önünde bulundurulmuştur.
• Bir baytlık bir bilgi (8-bit data) bilgisayardan yazıcıya paralel olarak gönderilmelidir.
• Bilgisayar

8-bit bilginin gönderilmek üzere beklediğini yazıcıya bildirmek zorundadır ve bu sinyal STROBE olarak bilinir. STROBE uyarı

ikaz anlamında kullanılabilir.
• Bilgisayar

yazıcıdan veriyi aldığına dair bir teyit mesajı da laması gereklidir ve bu sinyal ACKNOWLEDGE (ACK) olarak adlandırılır. Bu terim Türkçe'ye kabul ve veya geri bildirim olarak çevrilebilir.
Data

Strobe ve ACK sinyalleri (Şekil 6.2) her ne kadar ham veri iletimi için yeterli de olsa farklı istisnai durumlar düşünüldüğünde daha fazla sinyallere ihtiyaç olduğu açıktır.
Örneğin yazıcılar mekaniksel bir cihazdır ve bilgisayardan almış oldukları verileri belirlenen format içerisinde kağıda basarlar. Bilgisayar gelişiminin ilk yıllarında yazıcılar

bilgisayara son derece yavaş seri portlarla bağlanırlardı. Oldukça yavaş çalışan o dönemdeki yazıcılar için bu

çok da bir problem teşkil etmiyordu. Ancak yazıcıların hızlanması sonucu gelen verilerin yazıcı içerisinde bulunan geçici bir bellekte tutulması ihtiyacı ortaya çıktı. Bu gereksinim için tampon bellek (buffer memory) olarak adlandırılan birimler kullanılmaya başlandı. Bu durumda yazıcıya ait tampon belleğin dolduğunda

yazıcının bu durumu bilgisayara bildirmesi gerekmektedir. Bu sinyal yazıcının meşgul (BUSY) olduğunu bildirir ve bilgisayarın veri göndermesini engeller.
Tüm sistemlerin çok bilinen bir ortak yanları mevcuttur: Hatasız sistem yoktur. Tüm sistemler çalışma süresince er veya geç bir hata ile arızalı duruma düşerler ve bu tüm sistemler için kaçınılmaz bir durumdur. Aynı şekilde yazıcı bir hata ile karşılaştığında

mesela bir kağıt sıkışması söz konusu ise veya toner bitmesi oluştuysa bunun durumun bilgisayar bildirilmesi gerekmektedir. Bu tip durumları bildiren sinyal de ERROR (hata) olarak adlandırılır. Ayrıca yazıcının tamponundaki bilgiler bir hata sonucu ortaya çıkan arızadan dolayı silinip tekrar gönderilmesi istenebilir. Bu durumda tampon belleğin boşaltılması gerekeceğinden bu durum için de bir sinyal üretilmelidir. Bu sinyal de RESET sinyalidir ve bu sinyali alan yazıcı tampon belleğindeki bilgileri siler.
1.DATA port : Çıkış portu

8-bit veri sinyali
2.STATUS port : Giriş portu

5 adet durum sinyali
3. CONTROL port : Çıkış portu

4 adet kontrol sinyali
Burada şu soru akla gelebilir toplam 25 adet pine sahip paralel portun diğer (25-17= 8) pinleri ne işe yarar? Kalan bu 8 pin

elektromanyetik etkilerin azaltılması ve toprak potansiyeline farklı yollardan erişilmesi için kullanılmaktadırlar. Şimdi bu portları sırasıyla inceleyelim.
Sinyal ismi Görevi Kaynak
DATA Yazıcıya gönderilecek 8-bit veri Bilgisayar
Strobe Yeni verinin hazır olduğunu bildirme Bilgisayar
ACK Verilerin alındığına dair geri bildirim Yazıcı
Busy Yazıcının meşgul olduğunu bildirme Yazıcı
Error Yazıcıda bir hata oluştuğunu bildirme Yazıcı
Reset Yazıcıyı ilk haline kurma Bilgisayar
Paralel Port: Seri porta göre hizli olmasina ragmen ayni stabiliteyi saglayamaz. Çogunlukla yazici baglantisi için kulanilan bir porttur. Bu baglanti noktasina ayni zamanda LPT(LinePrinTer) de denmektedir. Bu portun bir pini bir seferde 8 bit veri gönderebilir. DB25 isimli portu kullanir.DB25 ismindeki 25 rakami kablo girisindeki pin sayisini ifade etmektedir. Yazici ve tarayici bu portu kullanmaktadir.Gunumzde paralel port seri port gibi yerini USB ye birakmaya baslamistir. dogabilecek sorunlardan kaçinmak için uzunluklari 5 metreyi asan kablolar kullanilmamalidir. Hedef aygit sadece PC tarafindan gönderilen komutlari islemekle kalmiyor PC' ye kendisi de veri gönderebiliyor
PARALEL PORT ILE:
5 metreyi geçmeyen en az 10 telli
kablo

iki adet 25 pin erkek paralel port konnektörü ile yanda yazili uçlari diger konnektöre baglanir. Eger tel çok ise yazili olmayan numaralar kendi numarasina baglanir.
Konnektör1 Konnektör2
2 15
3 13
4 12
5 10
6 11
7 2
8 3
9 4
10 5
11 6
Portlarla neler yapılabilir?
Klavyenizden bir tusa bastiginizda kablonun içinden 1 ve 0 sifir rakamlari akmaya baslar.Bunun görünürde bir anlami yok ama bu rakamlar bilgisayara ulastiginda ulasan bir ise bilgisayar bunu gücü açiyorum sifir ise gücü kapatiyorum seklinde yorumlar.Yani 1 rakami +5 Volt 0 rakami 0 Volttur.Bu gücü kullarak düsük elektrik gerektiren cihazlari yada ev esyalarini çalistirabiliriz.Piyasada USB portunu kullanan kahve isiticilar

çakmaklar

pil sarj aletleri bulunmaktadir. Bizde portlari kullanarak yeni ürünler yaratabilir yada bilgisayarimizi daha çekici bir hale getirebiliriz.
Elektronikçiden alinicak LEDlerle (Light emitting diode) yada yanip sönen isiklarda deniyor pinleri birbirine baglayarak isik gösterileri olusturabilirsiniz.Bunu yapmak için C++ delphi gibi programlama dillerine ihtiyaciniz var.Portlar sayesinde bilgisayariniza degisik isiklandirmalar yapabilirsiniz.
Ayni sekilde yine portlari kullanan ama piyasada bulunmayan çesitli ürünler yaratabilirsiniz. Örnek olarak bir bilgisayarin portuna baglicagimiz veri kaydedici bir cihaz ile o makinada yapilan tüm islemleri izleyebilir yada müdahale edebiliriz.Makinaniza en iyi firewall lari yükleseniz bile bilgisayarin içini açip portlariniza bakmazsaniz bilgilerinizi kolayca çaldirabilirsiniz.
Teknik servisinizde çalisan bir elemanin yapilmasi çok kolay olan bu cihazi makinaniza yerlestirmesi takdirde kredi karti bilgilerinizden ösym numaraniza kadar herseyinizi çaldirabilirsiniz.Bu yöntem kumarhanelerde tek kollu makinalarda sikça kullanilir.
Visual Basic'te port kontrolu
Open komutu ile seri ve paralel iletisim saglanabilinir.
Bu komutu hatirlayalim;
Open "Dosya Adi" For ErisimModu As #DosyaNo
Örnek olarak: Open sayilar.txt For Output As #1
Buradaki dosya adi yerine seri port "COM1:" veya "COM2:"

yada paralel port "LPT1:" veya "LPT2:" kullanilabilinir.
Simdi Open komutu ile LPT2 portunu açalim ve Write# komutu ile bu porta bilgi gönderelim. Gönderdigimiz bilgiler eger LPT2 üzerinde printer varsa çikti alabiliriz.
Kod:
Private Sub Form_Load()
Open "lpt2:" For Output As #1
Write #1

"Bu satirlar yazicidan cikicak"
Write #1

"Bu kod ile printer kablolarinizda bir sorun olup olmadigini"
Write #1

"kontrol edebilirsiniz"
Close #1
End Sub
Eger printerimiz LPT2 portuna bagliysa bu bilgiler yazicidan çikicaktir.Bu kod ile printerimizin fiziksel ayalarinda bir sorun olup olmadigini da denetlemis oluyoruz.
Bir baska örnekte bugünlerde çok moda olan dialer programlarinin benzeri birsey yaratabiliriz
COM2`ye baglanmis bir modem`e 2252442 nolu numarayi çevirmesini söyleyelim. Modeme bir numara çevirmesini söylemek için "ATDT" komutu kullanilir.
Kod:
Private Sub Form_Load()
Open "com2:" For Binary As #1
Put #1

"ATDT 2252442" & vbCr
Close #1
End Sub