Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Нужно перевести функцию из PHP на C#


Автор: bvmster 28.10.2007, 18:55
function KickCharacterPacket($char_id)
{
  $buf=pack("cV",5,$char_id).tounicode("admin");
  $cachedsocket=@fsockopen("localhost",2012,$errno,$errstr,1) or die($notconnected);
  fwrite($cachedsocket,pack("s",(strlen($buf)+2)).$buf);
  $len=unpack("v",fread($cachedsocket,2));$rid=unpack("c",fread($cachedsocket,1));
  for($i=0;$i<(($len[1]-4)/4);$i++){$read=unpack("i",fread($cachedsocket,4));$rs.=$read[1];}
  fclose($cachedsocket);
  return $rs;
}

Нужно ету функцию перевести на C#. Помогите пожалусто.

Автор: VisualProgrammerNET 29.10.2007, 01:45
Для начала укажи пожалуйста какая переменная какого типа, какой тип возвращают функции и какой принимают. Это в РНР так всё просто, тут - нет =)

Автор: bvmster 29.10.2007, 02:31
Код

function KickCharacterPacket()
{
  $buf=pack("cV",5, 222).tounicode("admin");
  $cachedsocket=@fsockopen("localhost",2012,$errno,$errstr,1) or die($notconnected);
  fwrite($cachedsocket,pack("s",(strlen($buf)+2)).$buf);
  $len=unpack("v",fread($cachedsocket,2));$rid=unpack("c",fread($cachedsocket,1));
  for($i=0;$i<(($len[1]-4)/4);$i++){$read=unpack("i",fread($cachedsocket,4));$rs.=$read[1];}
  fclose($cachedsocket);
  return $rs;
}


Так проще думаю будет...

pack() — Pack data into binary string
"cV" - c(signed char); V(unsigned long (always 32 bit, little endian byte order))

Автор: thomas 29.10.2007, 10:29
bvmster, 
Приветствую.
Для начала порекомендую отредактировать свои сообщения при помощи кнопки код. Там есть выпадающий список, выберите в нем "PHP"  и поместите ваш код в эти теги.
Второе, по моему этот вопрос надо было задать в разделе "Разработка под ASP.NET"
Ну и третье, не плохо бы описать словами что, с чем и как должна сделать эта функция и что вернуть в качестве результата.
Потому как люди программирующие в .NET, я думаю, совершенно без понятия какие функции есть в PHP. К примеру не плохо бы узнать, а что собственно делает функция
Код

pack("cV",5, 222).tounicode("admin");

какие она принимает параметры и что возвращает. Тогда можно будет подобрать аналог в C# или что-то написать в замен.

А так, как говориться, PHP и C# это две большие разницы. Фигурные скобки и точка с запятой это единственные общие черты.

Автор: Stepan_Lameroff 29.10.2007, 11:09
Посмотрите http://www.php-compiler.net.
Цитата

Phalanger is a new PHP implementation introducing the PHP language into the family of compiled .NET languages. It provides PHP applications an execution environment that is fast and extremely compatible with the vast array of existing PHP code. Phalanger gives web-application developers the ability to benefit from both the ease-of-use and effectiveness of the PHP language and the power and richness of the .NET platform taking profit from the best from both sides.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)