나는 이상한 것을 알아 차렸을 때 IP 패킷 '파서'를 조작하고 있었다. ReadInt32 대 ReadUInt32
그것은private uint srcAddress;
// stuff
srcAddress = (uint)(binaryReader.ReadInt32());
트릭을 수행 C#으로, IP 주소를 구문 분석에 왔을 때, 그래서 당신이 VB.Net 너무 트릭을 할 것
Private srcAddress As UInteger
'' stuff
srcAddress = CUInt(binaryReader.ReadInt32())
을 equivallent 생각할 것입니다. 그렇지 않습니다. 그러나 :
srcAddress = reader.ReadUInt32()
그러나.
발견에 약간의 시간이 걸렸지 만, 내가 뭘 어루 만졌다해도? 왜 이런거야 ?
'uint '가 필요할 때 왜 처음에'ReadInt32()'를 사용하고 있습니까? – Stijn
VB 코드와 동일한 입력을 C# 코드에 제공합니까? C# 값으로 MSB를 0으로 설정하면 운이 좋을 수도 있으므로 서명 된 int와 서명되지 않은 int 사이에는 아무런 차이가 없습니다. VB에서 두 개의 출력을 올리고 올 수 있습니까? 가능한 경우 16 진수. – bytefire
VB에서는 산술 오버플로 또는 IP 주소가 잘못되었습니다. As, 이유 : 내가 찾은 대부분의 C# 예제는 그런 식으로하고 1st에서는 '맹목적으로'번역했습니다. 당신이 옳았습니다.하지만 저는 그것을 변경했지만 여전히 차이점은 무엇입니까? – esjr