Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

PHP ile Soket programlama


Pluton

Öne çıkan mesajlar

Selamlar, bu olayı uzun zamandır araştırıp öğrenmek istiyordum tamda karşıma çıktı.

Şimdi bu soket programlamada öğrenmek istediğim olay "soket bağlantısı açmak v.s" gibi temel bilgiler değil. Daha çok programlara göndereceğim paket verileri (sanırım böyleydi ya) nasıl öğrenebileceğim.

Yani mesela şuanki program oyun sunucusuna notice gönderiyor. Ben bu noticeyi nasıl gönderdiğini takip edip aynı işlemi php'de nasıl yaptırabilirim ? Umarım anlatabilmişimdir.

Hala google'da aramalar yapıyorum ama burayada yazmak istedim ilginç ve iç açıcı guideler veren olur , tavsiyeler veren olur hepsi kabulumdur. Şimdiden teşekkür ederim
Link to comment
Sosyal ağlarda paylaş

Wireshark ile bakıyorum aslında olur gibi ama istediğim şeyi yakalamak baya zor olacak gibi. Şimdi şunu sorayım, aynı makinede a.exe var bu noticeyi asıl gönderen program birde b.exe var buda ynetim aracı gibi birşey , bundan notice gönderdiğimde a.exe'ye yolluyor oda hadi bakalım diyor.

Buna göre wire sharkdaki Source -> Destination olayı Local IP -> Local IP olmaz mı?
Link to comment
Sosyal ağlarda paylaş

programlar ip soket ile haberlesmiyorsa ethernet/wireless/etc interface'ini gozetledigin vakit bir sey goremezsin diye tahmin ediyorum

sordugun soru elimde x programi var haberlesme yapan ben bunu y php scripti ile taklit etmek istiyorum ise wireshark vb bir sey ile disariya gidip disaridan gelenlere bakacaksin

sifreleme kismi aplikasyon tarafindaysa ve asil programi yazan en azindan ayni seyi ikinci yollayisinda farkli bir sonuc cikarttiriyorsa gecmis olsun evet
Link to comment
Sosyal ağlarda paylaş

Abi hadi onu geçtim bir şekilde bulurum. Hatta bir forumda eleman yazmış notice gönderen paket budur diye ama tabi bir cacık anlamadım. Opcode falan görüyorum heryerde millet yazmışda satırlarca kod var. Neyin ne işe yaradığını bilmeden örnek kodda kullanmak istemiyorum. Bunun ne oldugu açıklayabileniniz var mıdır ? Ne oldugunu bile bilmediğimden aratacak kelime bile bulamıyrum

[C->S]
opcode : 0x7203
[word] : module id
[byte] : flag. 0x04: send notice
[byte] : 0x40 (unknown)
if (flag == 0x04)
{
[string] ascii message
}
Link to comment
Sosyal ağlarda paylaş

opensource vs bir seyin parcasi mi bu, anlamadim koydugun yapi tam olarak nereye gelmeli

bana izah ettigi tek sey

64 bit (?)
bir wordluk (islemci contextinde mi baska contextte mi ? ilki pek mantikli degil)
1 byte
1 byte
? byte

seklinde paket yolladigi
ve ?'nin boyutunu belirten zimbirti olmadigi icin ayni turden iki pakedi ard arda atarsan yeni pakedin bir oncekinin parcasi olarak algilanmasi gibi sorunlarin olmasi baya olasi

dolayisiyla saf tcp yerine mesaj bazli bisey kullaniliyor da o yuzden gerek duymamislar

ya da null terminator geldigi vakit tamam paket bitti diye kabul ediyorlar

fonksiyon olarak da

1 bytelik ilk field cekili ise de ?'da opcode icin arguman gelmis

remote ahmet(mehmet) cagirisini ahmet icin olan opcode, cekili flag ve "mehmet" stringi diye paket seklinde yapiyorsun muhtemelen

gibi uydurabilirim hani

projenin tam adresini verirsen daha net izah eden cikar belki
Link to comment
Sosyal ağlarda paylaş

byte byte yollayacaksin ?

struct {
uint16_t opcode;
uint32_t moduleid;
uint8_t flag1,flag2,*string;
} format;
...
void out(struct format data)
{
char buf[256],bufptr=buf;
memcpy( ((uint16_t*)bufptr)++,&(data.opcode),sizeof(uint16_t) );
memcpy( ((uint32_t*)bufptr)++,&(data.moduleid),sizeof(uint32_t) );
...
memcpy(bufptr,data.string,strlen(data.string)+1);
send(fd,buf,bufptr-buf+strlen(data.string)+1,0);
}

gibi
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...