C 1
chengdu
xranzei 1
xranzei
zendor2 1
zendor2
Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Almira2 1
Almira2
romegames 1
romegames
D 1
delimuratt
melankolıa18 1
melankolıa18
shrpnl 1
shrpnl
Fethi Polat 1
Fethi Polat
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Cevaplanmadı P2P -> Peer to peer hakkında bilgiler

  • Konuyu başlatan Konuyu başlatan alpercaglar58
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 5
  • Görüntüleme Görüntüleme 2K

alpercaglar58

Level 5
TM Üye
Katılım
24 Ağu 2010
Konular
82
Mesajlar
620
Çözüm
21
Online süresi
2d 1h
Reaksiyon Skoru
181
Altın Konu
0
TM Yaşı
15 Yıl 9 Ay 19 Gün
Başarım Puanı
155
Yaş
31
MmoLira
772
DevLira
9
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

Bu bağlantı şekli hakkında bilgili ilgili arkadaşlar varsa eğer bana örnekler verebilirler mi ?

Mt2 src kısmından game üzerinden bazı verilere php vb bir programlama dili ile cekip yazdırmak ve ya tam tersi game'ye mudahale etmek ıstıyorum. Bu konuda yardımcı olabilir misiniz ?

Örnek;


[CODE lang="php" title="Örnek Kod satırı (Online Kullanıcıları Listeliyor.)"]<?php

function P2PSendServer($yazi, $tip = "NOTICE", $port = 13000)
{

$serverIp = "192.168.1.7"; $sifre = "adminsifresi";


$socket = socket_create (AF_INET, SOCK_STREAM, SOL_TCP);

if ($socket < 0)
{
echo "\n Gecersiz socket...\n";

exit;
}

$sonuc = socket_connect ($socket, $serverIp, $port);

if ($sonuc < 0)
echo "\n Bağlantı hatası. Hata : ".socket_strerror($sonuc)."\n";

if($tip == "USER_COUNT")
$sorgu = "\x40".$tip."\x0A";
else
{
$sorgu2 = "\x40".$sifre."\x0A";
$sorguBoyut2 = strlen($sorgu2);
$sorguSonuc2 = socket_write($socket, $sorgu2, $sorguBoyut2);
socket_recv($socket, $sonuc2, 256, 0);
$sorgu = "\x40".$tip." ".$yazi."\x0A";
}

$sorguBoyut = strlen($sorgu);
$sorguSonuc = socket_write($socket, $sorgu, $sorguBoyut);

if ($sorguSonuc < 0)
echo "Hata: ".socket_strerror($sorguSonuc)."\n";
else
$sonuc1 = socket_recv($socket, $sonuc2, 256, 0);


if ($tip == "USER_COUNT")
{
$say = trim($sonuc2);
$say = explode(' ', $say);
//$say[0] = Kanaldaki toplam online
//$say[1] = Kırmızı bayrak toplam online
//$say[2] = Sarı bayrak toplam online
//$say[3] = Mavi bayrak toplam online
return $say;
}
else
{
return "$sonuc2\n";
}


// P2P Baglantı kapat.
socket_close($socket);
}


$say1 = P2PSendServer("", "USER_COUNT", 14001); //CH1
print_r($say1)

?>

Dizin Çıktısı : Array ( [0] => [MaHFiGM]4Hؿ�8����*H�) ) [/CODE]

[MaHFiGM]CHؿ�8����*H�) bu şekilde dönüt veriyor bu da çok anlamsız. ? Neden acaba.
 
Son düzenleme:
Çözüm
Ticaret - 0%
0   0   0
game client iletişimi şifreli diye biliyorum ondan böyle bir çıktı verebiliyor olabilir

şu tarz bir çözüm olabilir ama istediğin bilgileri clientten çekecek şekilde cmd_general'e eklersin orada yazanlar metin olarak servera gelirse altındaki fonksiyonu çalıştırıyor örneğin:

mesela itemleri efsunlamak için örneğini veriyorum:

ACMD(do_add_bonus)
{


item = ch->GetWear(WEAR_HEAD);
if (item != NULL)
{
item->ClearAttribute();
item->SetForceAttribute( 0, APPLY_ATT_SPEED, 8);
item->SetForceAttribute( 1, APPLY_HP_REGEN, 30);
item->SetForceAttribute( 2, APPLY_ATTBONUS_ANIMAL, 20);
item->SetForceAttribute( 3, APPLY_DODGE...
Hiç bir fikri ve ya yol gösterebilecek yok mu .s

C++ üzerinde eş zamanlı iletişime baktım oyunla alakalı paylaştığım dışında bilgi yok birde bashpanel varmış onu kaynak kodlarını görme şansım var mı acaba
 
Son Durum:

Olmadı neden böyle yapıyor anlamsız. Syserr de packet baslıgıyla alakalı bırseyler yaazıyor. baglantı başlatılıyor fonksiyona giriyor sonra boş dönüp kapatılıyor. Ne yollarsam yollayım sadece kullanıcıların onlıne hesapların lıstesını verıyor bana.


Dec 8 01:12:59 :: SYSTEM: new p2p connection from [192.168.1.103] fd: 17 Dec 8 01:12:59 :: DESC_MANAGER::AcceptP2PDesc 192.168.1.103:54650 Dec 8 01:12:59 :: P2P Acceptor opened (host 192.168.1.103) SYSERR: Dec 8 01:12:59 :: Process: UNKNOWN HEADER: 85, LAST HEADER: 0(0), REMAIN BYTES: 10, fd: 17 Dec 8 01:13:00 :: P2P Acceptor closed (host 192.168.1.103) Dec 8 01:13:00 :: SYSTEM: closing p2p socket. DESC #17
 
Bu mevzuyu hala anlayamadım gitti. p2p üzerinden bağlantı açıyorum. bana alper degeri yolladıgımdan gelen degeri ver diyorum c++ ile return ettiriyorum şu şekilde;

if (!stBuf.compare("ALPER")) { stResult = "ADIM ALPER"; }

Gibi ama dönütte bana online kullanıcıları veriyor dizin içinde :D Ne dersem deyim bana sadece online kullanıcıları listeliyor.

1 kez de hatalı admin parolası girdim php kodunda istek yaparken, yine bana online user listesini verdi. Çok anlamsız.

Ve sürekli aynı hata ;


if (bHeader == 0) // 암호화 처리가 있으므로 0번 헤더는 스킵한다. iPacketLen = 1; else if (!m_pPacketInfo->Get(bHeader, &iPacketLen, &c_pszName)) { sys_err("UNKNOWN HEADER: %d, LAST HEADER: %d(%d), REMAIN BYTES: %d, fd: %d", bHeader, bLastHeader, iLastPacketLen, m_iBufferLeft, lpDesc->GetSocket()); //printdata((BYTE *) c_pvOrig, m_iBufferLeft); lpDesc->SetPhase(PHASE_CLOSE); return true;
NKNOWN HEADER: ......genelde 65 ve 85de takılıyor.
 
Bu bağlantı şekli hakkında bilgili ilgili arkadaşlar varsa eğer bana örnekler verebilirler mi ?

Mt2 src kısmından game üzerinden bazı verilere php vb bir programlama dili ile cekip yazdırmak ve ya tam tersi game'ye mudahale etmek ıstıyorum. Bu konuda yardımcı olabilir misiniz ?

Örnek;


[CODE lang="php" title="Örnek Kod satırı (Online Kullanıcıları Listeliyor.)"]<?php

function P2PSendServer($yazi, $tip = "NOTICE", $port = 13000)
{

$serverIp = "192.168.1.7"; $sifre = "adminsifresi";


$socket = socket_create (AF_INET, SOCK_STREAM, SOL_TCP);

if ($socket < 0)
{
echo "\n Gecersiz socket...\n";

exit;
}

$sonuc = socket_connect ($socket, $serverIp, $port);

if ($sonuc < 0)
echo "\n Bağlantı hatası. Hata : ".socket_strerror($sonuc)."\n";

if($tip == "USER_COUNT")
$sorgu = "\x40".$tip."\x0A";
else
{
$sorgu2 = "\x40".$sifre."\x0A";
$sorguBoyut2 = strlen($sorgu2);
$sorguSonuc2 = socket_write($socket, $sorgu2, $sorguBoyut2);
socket_recv($socket, $sonuc2, 256, 0);
$sorgu = "\x40".$tip." ".$yazi."\x0A";
}

$sorguBoyut = strlen($sorgu);
$sorguSonuc = socket_write($socket, $sorgu, $sorguBoyut);

if ($sorguSonuc < 0)
echo "Hata: ".socket_strerror($sorguSonuc)."\n";
else
$sonuc1 = socket_recv($socket, $sonuc2, 256, 0);


if ($tip == "USER_COUNT")
{
$say = trim($sonuc2);
$say = explode(' ', $say);
//$say[0] = Kanaldaki toplam online
//$say[1] = Kırmızı bayrak toplam online
//$say[2] = Sarı bayrak toplam online
//$say[3] = Mavi bayrak toplam online
return $say;
}
else
{
return "$sonuc2\n";
}


// P2P Baglantı kapat.
socket_close($socket);
}


$say1 = P2PSendServer("", "USER_COUNT", 14001); //CH1
print_r($say1)

?>

Dizin Çıktısı : Array ( [0] => [MaHFiGM]4Hؿ�8����*H�) ) [/CODE]

[MaHFiGM]CHؿ�8����*H�) bu şekilde dönüt veriyor bu da çok anlamsız. ? Neden acaba.
game client iletişimi şifreli diye biliyorum ondan böyle bir çıktı verebiliyor olabilir

şu tarz bir çözüm olabilir ama istediğin bilgileri clientten çekecek şekilde cmd_general'e eklersin orada yazanlar metin olarak servera gelirse altındaki fonksiyonu çalıştırıyor örneğin:

mesela itemleri efsunlamak için örneğini veriyorum:

ACMD(do_add_bonus)
{


item = ch->GetWear(WEAR_HEAD);
if (item != NULL)
{
item->ClearAttribute();
item->SetForceAttribute( 0, APPLY_ATT_SPEED, 8);
item->SetForceAttribute( 1, APPLY_HP_REGEN, 30);
item->SetForceAttribute( 2, APPLY_ATTBONUS_ANIMAL, 20);
item->SetForceAttribute( 3, APPLY_DODGE, 15);
item->SetForceAttribute( 4, APPLY_ATTBONUS_ORC, 20);
}
}

oyundaki bir karakter /add_bonus yazarsa kaskı efsunlanıyor

aynı şekilde kendi fonksiyonlarını tanımlayıp yapabilirsin belki
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst