Có mạng để lưu trữ các chức năng chuyển đổi trong C# không? Googling và không tìm thấy nhiều. : Pntohs() và ntohl() tương đương?
Trả lời
IPAddress.HostToNetworkOrder
và IPAddress.NetworkToHostOrder
?
Mỗi phương pháp có quá tải cho các số nguyên 16, 32 và 64 bit.
@jon-skeet's answer là chính xác nhất theo câu hỏi của bạn. Tuy nhiên, các hàm 'ntoh_' và 'hton_' C được sử dụng rộng rãi để dịch giữa little-endian and big-endian computer architectures.
Nếu ý định của bạn là để thực hiện chuyển đổi cuối cùng, có BitConverter class (lớp tĩnh trong hội đồng cốt lõi) mang đến cho bạn một cách phù hợp hơn. Đặc biệt khi:
- Làm việc với mảng byte (được sử dụng rộng rãi trong luồng tệp hoặc mạng).
- Detecting endianess kiến trúc của máy chạy bộ.
- Chuyển đổi cấu trúc cơ bản ngoài các số nguyên (booleans, decimals) mà không cần in.
- Mã của bạn không liên quan đến hoạt động mạng (không gian tên System.Net).
ngoại trừ lớp đó không có hàm tương đương với htonl. Tôi sẽ phải nhận được các byte, đảo ngược chúng, sau đó chuyển đổi trở lại – pm100
'BitConverter' không hỗ trợ bất kỳ endianness không có nguồn gốc. (Ít nhất cái tích hợp sẵn không, Jon hay Marc tạo ra một cái mạnh hơn - nhưng làm cho các mảng rác tạm thời vẫn là một sự lãng phí) –
- 1. python tương đương tương đương
- 2. Sản lượng tương tự cho htonl() và ntohl() trên số nguyên
- 3. htons & ntohl trong datatransfer
- 4. Linux: ntohl không hoạt động chính xác
- 5. Tương đương với IF và WHERE
- 6. Messagebox.Show và DialogResult tương đương trong MonoTouch
- 7. Java Generics và Infinity (tương đương)
- 8. Là getchar() tương đương với scanf ("% c") và putchar() tương đương với printf ("% c")?
- 9. Tương đương TreeSet của Java tương đương với Python?
- 10. Trợ lý tương đương Doctrine 2 SUM() tương đương?
- 11. Chú thích tương đương SpringData Mongo @Column tương đương (@Property?)
- 12. ntohs() trong pcap chính xác làm gì?
- 13. Loại tương đương OCaml
- 14. Tương đương với Visual Basic's và và hoặc trong C#?
- 15. Golang requirements.txt tương đương
- 16. Postgresql GROUP_CONCAT tương đương?
- 17. Các đối số nào cho và chống lại cả hai tên tương đương và tương đương cấu trúc?
- 18. java tương đương swfobject
- 19. C# memcpy tương đương
- 20. C# ULONG_PTR Tương đương
- 21. Ruby file_get_contents tương đương
- 22. Meteor upsert tương đương
- 23. android - WrapPanel tương đương?
- 24. FileOutputStream tương đương
- 25. unique_ptr boost tương đương?
- 26. Python tương đương
- 27. Oracle 'printf' tương đương
- 28. Derby: CONCAT tương đương
- 29. IsFinite() tương đương
- 30. rsync tương đương mv lệnh
Tôi giả sử 2 phương pháp này cũng làm như vậy. Tôi lưu ý rằng tình trạng quá tải chỉ dành cho những thứ đã ký. Họ có an toàn về những thứ chưa ký? – pm100
@ pm100: Bạn có thể mong đợi họ là những người tự khắc phục. Tôi không muốn tuyên bố rằng đối với thực tế tuyệt đối mặc dù :) Không chắc chắn những gì bạn có nghĩa là "an toàn trên những điều unsigned" - bạn phải đúc đầu tiên, tại thời điểm đó nó sẽ không được unsigned ... –
đầu tiên - cho rằng một số lượng đáng kể những thứ họ làm việc sẽ là những thứ như địa chỉ IP không được gán cho nó một cách đáng ngạc nhiên rằng không có quá tải cho uint32 vv. Bởi 'an toàn' tôi có nghĩa là tôi cảnh giác với việc ký kết với unsigned, fiddling với bit và đúc lại, nói chung đây là một công thức để tuyên truyền/cắt ngắn, ... wiednesses – pm100