- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望用汇编程序编写一个可启动程序,能够发送和接收网络数据包。我不想使用任何库,我想自己创建它(并在这样做的同时学习)。不幸的是,我无法找到有关最低级别的网卡通信(发送原始套接字)的任何信息。我相信有必要使用 NGOÀI
Và TRONG
指令,尽管我找不到有关分配给网卡的端口的任何信息(或如何找到它,如果它并不总是相同)。有人能指出我正确的方向吗? ;-)
1 Câu trả lời
这是一个需要解决的相当大的问题。即使达到“原始套接字”的程度也需要相当多的工作。
首先,使用现代 BIOS,您的网卡通常不会默认配置,因此您需要处理 PCI configuration将其配置为具有一些对处理器可见的端口。这将为您提供让 CPU 与网卡实际通信的基本能力。
其次,您必须找到一些有关它所使用的特定芯片组的文档,以便您知道如何读取和写入网络数据。对于一些较旧的卡来说,这非常容易,但大多数较新的卡都充当带有分散/聚集硬件的总线主控器。即使对它们进行编程以执行简单的传输也并非易事。但这完全取决于硬件。
第三,您需要开发 IP 堆栈的重要部分,以便能够使用原始套接字。在硬件级别,您基本上有两种功能:接收任何到达的数据包,并将数据包发送到指定的 MAC 地址 - 或其他硬件地址,如果您的卡不是(并且看起来/行为不像)以太网。
接下来的几层将是 ARP resolver (让您使用 IP 地址而不是 MAC 地址)和 DNS 客户端(这样您就可以使用正常的地址名称而不是点分四边形之类的名称。除此之外,您可能还想构建知道如何创建/理解的软件IP datagrams .
关于assembly - 汇编程序中的低级网络(兼容 x86),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3621932/
Tôi có một tiện ích bổ sung mà tôi viết cho Firefox 3.6 và hiện tôi đang nâng cấp nó lên Firefox 4.0 trong khi cố gắng làm cho nó tương thích với 3.6. Có ai có kinh nghiệm thực hiện việc này không, hoặc có ý tưởng nào về cách sửa lỗi trong trường hợp mã trở nên quá giống mì spaghetti không?
Tôi đã cài đặt Cassandra 2.0.1 và muốn sử dụng Astyanax Java API trong ứng dụng của mình. Tôi thấy bảng tương thích Cassandra trên wiki và thấy Astyanax sử dụng Netflix.
Có thể tạo một lớp chứa tùy chỉnh được triển khai hoàn toàn bằng VBScript (không có đối tượng COM) hoạt động với câu lệnh For Each không? Nếu vậy, tôi phải công khai bằng cách nào? Câu trả lời hay nhất là ngắn gọn, tại sao? Tạo một lớp bộ sưu tập có thể đếm được
Tôi có một vài mã ở đây int b=3; b=b >> 1; System.out.println(b); nó hoạt động tốt nhưng khi tôi thay đổi biến b thành byte, short, float, double thì nó chứa
Chúng tôi có một máy khách Java có thể gọi nhiều hệ thống của bên thứ ba bằng cách sử dụng corba. Đây là những hệ thống khác nhau triển khai cùng một bộ giao diện. Chúng ta có được thư viện (tệp jar) sử dụng các giao diện này. Ví dụ, những điều này
Tôi biết rằng về mặt kỹ thuật HTML5 là một "thông số kỹ thuật sống", nhưng tôi muốn biết liệu nó có tuân thủ quy tắc về việc thêm khoảng trắng theo sau tên lớp hay không. Tôi không thấy tài liệu hướng dẫn nào đề cập đến tình huống này, nhưng một trong những đồng đội của tôi nói rằng nó không hợp lệ. Có lẽ tôi đã bỏ lỡ điều gì đó? Việc cắt tỉa những khoảng trống này sẽ
Tôi lập trình bằng C trên Linux x86-64. Tôi đang làm việc với một thư viện tạo nhiều luồng thông qua lệnh gọi hệ thống sao chép thô thay vì sử dụng pthread_create. Các luồng này chạy mã cấp thấp bên trong thư viện. Tôi muốn móc cái này
Tôi đang tìm cách viết một chương trình có thể khởi động bằng trình biên dịch để có thể gửi và nhận các gói tin mạng. Tôi không muốn sử dụng bất kỳ thư viện nào, tôi muốn tự mình tạo ra nó (và học trong khi thực hiện). Thật không may là tôi không thể tìm thấy bất kỳ thông tin nào về mức giao tiếp thấp nhất của card mạng (gửi các socket thô). Tôi tin là có
Có nhánh CoffeeScript nào không có thay đổi nào ngoại trừ phạm vi cố định để tương thích phần lớn với CoffeeScript (hoàn toàn tương thích nếu mã không có phép gán biến bên ngoài) không? Tôi sẽ xem xét sử dụng chấp nhận được
Câu hỏi này đã có câu trả lời: Tại sao BiConsumer được phép được gán một hàm chỉ chấp nhận một tham số duy nhất
Ứng dụng Java của tôi yêu cầu một cơ sở dữ liệu bộ nhớ chính hiệu suất cao 1] Vui lòng đề xuất một cơ sở dữ liệu - Tương thích với JDBC - Độc lập (tức là tệp phẳng) - Hỗ trợ các bảng trong bộ nhớ - Hiệu suất cao - Chỉ mục B-TREE 2] Có công nghệ nào trong JAVA có thể
Tôi thường tìm thấy một số hàm lấy char* làm tham số, nhưng tôi nghe nói std::string được khuyên dùng hơn trong C++. Làm thế nào để sử dụng các đối tượng std::string với các hàm lấy char* làm tham số? Cho đến nay tôi đã học được rằng c_str
Tôi đang chuyển một trong những tệp javascript cũ của mình để tương thích với requireJS. Mã trông như thế này trước đây. // effect.js (hàm (xuất khẩu) { // viết tắt
Tôi đã có mã hoạt động trước khi cập nhật SDK hôm nay (để tham khảo trong tương lai, vui lòng xem ngày hỏi). .getMap từng đưa ra cảnh báo cho biết nó đã lỗi thời, nhưng bây giờ nó thậm chí còn không được công nhận là đầu vào hợp lệ. Tôi cho rằng điều này là do API 24 (Android
Theo bảng tham khảo trên hyperpolyglot.org, cú pháp sau có thể được sử dụng để thiết lập một mảng. i=(1 2 3) Nhưng tôi gặp lỗi trên dash, đó là Ubuntu
Tôi đã cài đặt MYSQL 8.0.12 (phiên bản tải xuống) trên MacBook của mình. Khi tôi thử dump phiên bản tương thích của mysql40, tôi nhận được lỗi Invalid mode to --known: mysql40. Tôi 100 tuổi
Xin chào, tôi đang trong quá trình thay đổi hệ thống kiểm soát phiên bản của mình và tôi đang tìm hiểu xem liệu Perforce có tương thích với BCM Remediation không. Có ai biết hệ thống kiểm soát phiên bản nào khác tương thích với bcm remedy không? ? Câu trả lời tốt nhất là BMC Remedy sẽ gần với Clea hơn
Tôi cần vẽ lưới tọa độ chung trên một hình ảnh bằng Python. Tôi có thể tính toán tọa độ điểm ảnh của các đường lưới, vì vậy tôi chỉ cần một mô-đun có thể vẽ chúng thành các đường chấm trên đầu hình ảnh. Các hình ảnh có dạng mảng numpy, vì vậy tôi cần có khả năng làm việc giữa các định dạng này và vẽ sơ đồ
Cách "truyền thống" để thư viện chấp nhận đầu vào tệp là thực hiện như sau: def foo(file_obj): data = file_obj.read() # Thực hiện những việc khác ở đây Mã máy khách
Tài liệu CodeUntitled #topDropDownMenu { vị trí: tương đối;
Tôi là một lập trình viên xuất sắc, rất giỏi!