Это - то, как я решил его прибывающий из того, чтобы быть c программистом c# программисту. Мне нравится использовать MemoryStream для преобразования его в поток и затем BinaryReader для разбивания двоичного блока данных. Должны были добавить две функции помощника для преобразования от сетевого порядка до прямого порядка байтов. Также для создания байта [] для отправки видят , там путь, бросает объект назад к нему исходный тип без specifing каждый случай? , который имеет функцию, которые допускают преобразование из массива объектов к байту [].
Hashtable parse(byte[] buf, int offset )
{
Hashtable tcpheader = new Hashtable();
if(buf.Length < (20+offset)) return tcpheader;
System.IO.MemoryStream stm = new System.IO.MemoryStream( buf, offset, buf.Length-offset );
System.IO.BinaryReader rdr = new System.IO.BinaryReader( stm );
tcpheader["SourcePort"] = ReadUInt16BigEndian(rdr);
tcpheader["DestPort"] = ReadUInt16BigEndian(rdr);
tcpheader["SeqNum"] = ReadUInt32BigEndian(rdr);
tcpheader["AckNum"] = ReadUInt32BigEndian(rdr);
tcpheader["Offset"] = rdr.ReadByte() >> 4;
tcpheader["Flags"] = rdr.ReadByte() & 0x3f;
tcpheader["Window"] = ReadUInt16BigEndian(rdr);
tcpheader["Checksum"] = ReadUInt16BigEndian(rdr);
tcpheader["UrgentPointer"] = ReadUInt16BigEndian(rdr);
// ignoring tcp options in header might be dangerous
return tcpheader;
}
UInt16 ReadUInt16BigEndian(BinaryReader rdr)
{
UInt16 res = (UInt16)(rdr.ReadByte());
res <<= 8;
res |= rdr.ReadByte();
return(res);
}
UInt32 ReadUInt32BigEndian(BinaryReader rdr)
{
UInt32 res = (UInt32)(rdr.ReadByte());
res <<= 8;
res |= rdr.ReadByte();
res <<= 8;
res |= rdr.ReadByte();
res <<= 8;
res |= rdr.ReadByte();
return(res);
}
Если не принимать во внимание то, что не изменилось с HTML 4.01…
Плюсы? Не много. Есть несколько вещей, которые работают в меньшинстве браузеров. Есть несколько вещей, которые работают в меньшинстве браузеров, но с добавлением JavaScript могут относительно разумно поддерживать большинство браузеров.
Что касается минусов…
Это полезно для экспериментов с , но я бы не стал строить на нем основной веб-сайт.
Плюсы:
Минусы:
Аргумент, что вся спецификация по-прежнему черновик, не считается. Просто посмотрите на CSS. Даже последние изменения в рекомендации CSS 2.1 все еще имеют статус черновика.
Нет никаких минусов - большинство вещей будет работать так же, как в XHTML 1.0 или HTML 4.01. Профи постепенно появятся в ближайшие несколько лет, но принесут больше семантики (и каким-то образом более легкое понимание контента ботами поисковых систем с точки зрения SEO). HTML 5, кроме того, позволяет дизайнерам использовать любые веб-шрифты (а не только ограничивающие базовые пять, такие как Arial / Helvetica, Verdana, Times New Roman и т. Д.)
см. Также:
http: //www.alistapart. com / article / semanticsinhtml5 /
http://www.zeldman.com/2009/07/13/html-5-nav-ambiguity-resolved/
http://www.zeldman.com/2009/ 07/20 / web-fonts-html-5-roundup /
If you want to use the HTML 5 specific elements, take a look at http://ejohn.org/blog/html5-shiv/. This approach allows you to use the HTML in browsers that don't support them now.
def remAll(L, item):
answer = []
for i in L:
if i!=item:
answer.append(i)
return answer
-121--2115250- Попробуйте решение опубликовано Колин Мик по адресу: http://social.msdn.microsoft.com/forums/en-US/adodotnetentityframework/thread/095745fe-dcf0-4142-b684-b7e4a1ab59f0/ . Это сработало для меня.
-121--2675139-HTML5 не одно. Есть некоторые части HTML5, которые вы можете использовать прямо сейчас.
Например, можно изменить тип документа на HTML5 (
). Бум. Документ теперь HTML5. Поскольку спецификация HTML5 была основана на большой работе по выяснению того, что браузеры уже делают, такие вещи просто работают. Итак, если вы предпочитаете HTML5 синтаксис, не стесняйтесь делать это сейчас.
Что касается новых элементов, как было упомянуто, они не имеют поддержки в IE. Вы можете добавить достаточно много поддержки для HTML5 в IE с JavaScript, если вы довольны этим. Обратите внимание, что неизвестные HTML-элементы отображаются как встроенные всеми браузерами, поэтому необходимо добавить дисплей: block;
для новых элементов уровня блоков для старых браузеров.
Погружение в HTML5 стоит того, чтобы ускорить работу, особенно Глава 3 .