Câu hỏi

25/05/2013 20:29
Tôi muốn tìm hiểu về ngôn ngữ lập trình socket và xây dựng chương trình quét địa chỉ IP trong LAN. Xin hướng dẫn?
Danh sách câu trả lời (1)

Không hề có thuật ngữ “ngôn ngữ lập trình socket”. Thật vậy, khái niệm ngôn ngữ lập trình và khái niệm socket là hoàn toàn độc lập nhau. Ta có thể nói socket là một kỹ thuật lập trình mạng được dùng phổ biến. Hiện nay hầu hết các môi trường lập trình mạng đều hỗ trợ socket, điều này hàm ý rằng bất kỳ ngôn ngữ lập trình nào cũng có thể được dùng để lập trình mạng dùng socket. Để kiểm tra xem có bao nhiêu máy trong mạng cục bộ đang chạy và mỗi máy đó có địa chỉ IP cụ thể như thế nào, bạn có thể dùng giải thuật vét cạn, nghĩa là dò từ địa chỉ IP nhỏ nhất đến địa chỉ IP lớn nhất mà mạng đó dùng để xem có máy nào đang chạy theo địa chỉ IP tương ứng. Dĩ nhiên giải thuật vét cạn luôn là giải thuật chậm nhất, tuy nhiên nếu mạng LAN của bạn dùng địa chỉ IP class C thì chỉ có thể chứa tối đa 254 máy tính, vét cạn trên 254 máy cũng không tốn nhiều thời gian lắm. Ý tưởng cơ bản của việc kiểm tra xem có máy nào đang chạy ở địa chỉ IP nào đó hay không là xây dựng 1 gói dò hỏi ICMP rồi dùng lệnh sendto() để gửi gói ICMP tới địa chỉ IP tương ứng, sau đó chờ nhận gói reply bằng hàm recvfrom(). Nếu sau một thời gian chờ qui định không có gói reply quay về thì có thể kết luận rằng không có máy nào đang dùng địa chỉ IP này.
Trả lời câu hỏi
Câu hỏi lĩnh vực Lập trình
Rao vặt Siêu Vip