- 29 Tem 2017
- 1,174
- 8
- 103
Türkiye'de cidden yeterli kaynak yok PDF olarak veya internet üzerinde yeterli kaynak yok maalesef bunun üzerine konu açtım. İnşallah yararlı olacaktır.
Genel Portlar :
Diğer portlar rastgele(random)ola bilir programlar tarafından atanılan.
bu komutu cmd veya uçbirim(terminal) de kullanırsanız kullanılan portları göre bilirsiniz.
Veri Aktarımı
Streams (TCP): Pcler birine bağlıdır . Okuma/Yazma gibi ve sürekli bayt akışında dır.
Datagrams (UDP): Her paket, bir bayt koleksiyonu içerir, ancak her biri Paket ayrı ve bağımsızdır.
Soket Temelleri
Python da soket kullanımı(soket oluşturma) :
Addressler:
AF_INET Internet protocol (IPv4)
AF_INET6 Internet protocol (IPv6)
Soket tür'ü:
SOCK_STREAM Connection based stream (TCP)
SOCK_DGRAM Datagrams (UDP)
Örnek :
Yukarıda "s" adında değişken oluşturduk daha sonra socket() diyerek soket oluşturduk . Bu socket() komutu pythonda soket oluşturmak için kullanılır daha sonra parantesin içine ilk olarak Adres yazılır örnekiğin AF_INET bu AF_INET ipv4 içindir eğer AF_INET6 dersek ipv6 için kullanılır daha sonra "," koyarak hemen SOCK_STREAM veya SOCK_DGRAM yazarız SOCK_STREAM TCP bağlantısı sağlar SOCK_DGRAM dersek UDP bağlantısı sağlar . Hemen Tekrar soket oluşturalım hatalarınana deyinerekten.
Doğru bir şekilde soket oluşturma :
şu şekilde asla olmaz :
bu yanlıştır!.
NOT : Pythonda soket kütüphanesini içe katarmayı unutmayın!
.connect() komutu soket'e bağlanma işe yarar ama ondan önce 2 adet değişken oluşturmamız lazım. Bunlardan birsi host adresini barındırması lazım diğeri ise port adresini hemen oluşturalım :
Çok güzel şimdi soket'e bağlantı gerçekleştirelim.
soketim.connect(host,port) komutu sayesinde soketim adında ki değişkene connect() komutunu sayesinde soket'e bağlan dedik ardından ilk her zaman host beli edilir ve bizde öyle yaptık daha sonra port'u beli edip hosy adında ki değişken senin host adresindir port değişkeni ise port değerindir diyip bağlanmasını sağladık.
Bu şekilde basit bir bağlantı sağlanılmış oldu.
.close()
bu komut sayesinde bağlanılan soketden bağlantıyı sonlandırılmasını gerçekleştiriz .
"()" içine host,port ' u eklemeyiz.
.send ve .recv()
.send() komutundan anlaşıllıcağı gibi veri yollar .
Bu şekilde kullanılır .
.recv() komutu ise veri alır .
Bu .recv() komutunu send den sonra kullanın bu komut send etiğiniz yani verdiğiniz data verisnin karşıdan gelen tepkimeyi alır. Örnek kod:
DEVAMI GELİCEKTİR...
Genel Portlar :
Kod:
21 FTP
22 SSH
23 Telnet
25 SMTP (Mail)
80 HTTP (Web)
110 POP3 (Mail)
119 NNTP (News)
443 HTTPS (web)
Kod:
netstat -a
Veri Aktarımı
Streams (TCP): Pcler birine bağlıdır . Okuma/Yazma gibi ve sürekli bayt akışında dır.
Datagrams (UDP): Her paket, bir bayt koleksiyonu içerir, ancak her biri Paket ayrı ve bağımsızdır.
Soket Temelleri
Python da soket kullanımı(soket oluşturma) :
Kod:
from socket import *
s = socket(addres, soket_türü)
#Ayrınıtılı bir şekilde anlatacağım
AF_INET Internet protocol (IPv4)
AF_INET6 Internet protocol (IPv6)
Soket tür'ü:
SOCK_STREAM Connection based stream (TCP)
SOCK_DGRAM Datagrams (UDP)
Örnek :
Kod:
from socket import *
s = socket(AF_INET, SOCK_STREAM
#TCP :
s = socket(AF_INET, SOCK_STREAM)
#UDP:
s = socket(AF_INET, SOCK_DGRAM)
Doğru bir şekilde soket oluşturma :
Kod:
soketim = socket(AF_INET, SOCK_DGRAM)
Kod:
soketim = s(AF_INET, SOCK_DGRAM)
NOT : Pythonda soket kütüphanesini içe katarmayı unutmayın!
Kod:
.connect() komutu soket'e bağlanma işe yarar ama ondan önce 2 adet değişken oluşturmamız lazım. Bunlardan birsi host adresini barındırması lazım diğeri ise port adresini hemen oluşturalım :
Kod:
import socket
host = "www.google.com"
port = 80
soketim = socket(AF_INET, SOCK_STREAM)
Kod:
soketim.connect((host,port))
Bu şekilde basit bir bağlantı sağlanılmış oldu.
.close()
bu komut sayesinde bağlanılan soketden bağlantıyı sonlandırılmasını gerçekleştiriz .
Kod:
import socket
host = "www.google.com"
port = 80
soketim = socket(AF_INET,SOCK_STREAM)
soketim.connect((host,port))
soketim.close()
.send ve .recv()
.send() komutundan anlaşıllıcağı gibi veri yollar .
Kod:
soketim.send("GET /index.html HTTP/1.0\n\n")
Kod:
from socket import *
s = socket(AF_INET,SOCK_STREAM)
s.connect(("www.python.org",80))
s.send("GET /index.html HTTP/1.0\n\n")
s.close()
.recv() komutu ise veri alır .
Kod:
veri = s.recv(10000)
Kod:
from socket import *
s = socket(AF_INET,SOCK_STREAM)
s.connect(("www.python.org",80))
s.send("GET /index.html HTTP/1.0\n\n")
veri = s.recv(10000)
print veri
s.close()