2009-07-28 38 views
13

mặc dù tôi đã không làm việc với ổ cắm chuyên nghiệp, tôi thấy chúng thú vị. Tôi đọc một số phần của Lập trình Mạng Unix của Richard Stevens (được coi là Kinh Thánh mà tôi cho là nó được mọi người tôi đề cập) nhưng vấn đề là các ví dụ yêu cầu một tiêu đề phổ quát là unp.h là một PIA để sử dụng.Bài đọc tốt về lập trình socket Unix/Linux?

Một số bạn có thể gợi ý đọc tốt cho lập trình socket trong Unix/Linux không? Xem xét tôi là coder C/C++ tương đối giàu kinh nghiệm.

Trả lời

20

Tham chiếu chuẩn là Lập trình mạng UNIX bởi W. Richard Stevens. upn.h thực sự chỉ là một tiêu đề trợ giúp, để làm cho cuốn sách trở nên rõ ràng hơn - nó không làm gì đặc biệt là ma thuật.

Để thiết lập và chạy rất nhanh, thật khó để vượt qua Beej's Guide To Network Programming using Internet Sockets.

+4

Nó đã được đề cập bởi tất cả và tạp phẩm, tôi chắc chắn có những bài đọc tốt khác là tốt. Thử các ví dụ của nó là một PIA. Vấn đề tôi thấy là các tiêu đề được đưa ra trong các ví dụ là các trình bao bọc cho các hàm thực tế và đó không phải là cách mà các API tìm hiểu. Và quan trọng nhất là họ không biên dịch (ít nhất là trên hệ thống của tôi sau khi thử nghiệm nhiều lần nó thất bại nhiều lần) – rocknroll

+0

Bạn đang làm việc với hệ thống Linux nào? Trang của Beej nói Fedora Core (phiên bản 3 IIRC) ... –

12

tôi đã sử dụng Beej's Guide to Network Programming

Có rất nhiều ví dụ về các khách hàng và mã máy chủ với lời giải thích tại mỗi bước của con đường.

+0

+1: Đây là hướng dẫn bắt đầu nhanh tuyệt vời. Nên có nhiều điều để bạn có thể viết các ứng dụng dựa trên socket ngẫu nhiên của riêng mình. – ojrac

1

APUE là một cách hay để làm quen với môi trường Unix cũng như lập trình C trong ngữ cảnh unix để bạn có thể chuyển sang lập trình socket.

+0

@alok Cuốn sách này đã được đề cập trong câu trả lời của quán cà phê. –

1

Ngoài những cuốn sách Stevens đã đề cập, tôi thấy sau hai để được thực sự tốt và tương đối ngắn đọc cho/vấn đề TCP IP lập trình (đặc biệt là gotchas và các lỗi phổ biến):

Sau đó, bạn có thể muốn đọc mã nguồn cho ứng dụng mạng . Các tiện ích và ứng dụng Linux khác nhau là một điểm khởi đầu tốt.

1

Bạn có thể tham khảo các bài báo tôi đã viết khi tôi dạy cource khoa học máy tính đại học, Mạng máy tính cơ bản, tại ufl.edu một thời gian dài trước: "A Crash Course In Unix TCP/IP Socket Programming".

giấy là cũ. Tôi ngạc nhiên rằng khi tôi Bing cho nó, vẫn còn một nửa tá tài liệu tham khảo cho nó ra khỏi đó.

Một số ngữ nghĩa trình biên dịch và các tệp tiêu đề cần thiết có thể đã thay đổi một chút trong những năm qua, nhưng những điều cơ bản về thiết lập UDP hoặc TCP socket và thực hiện các công việc DNS cơ bản được thảo luận vẫn còn hiệu lực ngày hôm nay.

Chúc may mắn!

1

Điều này có vẻ là tình trạng khó xử kinh điển khi lội vào hồ bơi hoặc lặn đầu tiên vào cuối sâu.

FWIW Tôi tìm mã bao bọc của Steven cũng gây khó chịu và tôi đã cố gắng để có được ít nhất một số ví dụ hoạt động trên mọi nền tảng mà tôi đã thử chúng trên đó. Điều đó nói rằng trình bao bọc ẩn xử lý lỗi chủ yếu là tầm thường mà có thể đã lặp đi lặp lại, unenlightening, và đưa lên nhiều không gian hơn trong một cuốn sách đã lớn. (Mặc dù công bằng, các biên tập viên có thể ném ra 1/4 cuối của cuốn sách để XTI đưa ra phòng.)

Lập trình mạng đủ sâu về một chủ đề mà bạn có thể thay thế bằng cách cưỡi sóng bề mặt và thực hiện các quả cầu lửa. Một số nguồn tốt cho một sự khởi đầu nhanh chóng đã được đề cập rằng sẽ giúp bạn vượt qua giai đoạn "wow, tôi nhận nó để làm việc". Nhưng khi bạn cần đến "Tôi cần nó mạnh mẽ và đáng tin cậy vì công việc/sản phẩm của tôi phụ thuộc vào nó", bạn sẽ đánh giá cao Stevens, mụn cóc và tất cả, vì khả năng kỳ lạ của mình để dự đoán vấn đề hiện tại của bạn.

Đã có các chương của tác phẩm của Steven tôi đã bỏ qua thành công trong nhiều năm. Nhưng tôi chắc chắn biết ơn họ đã ở đó khi tôi cần chúng.

1

Khối lượng lập trình mạng UNIX 1/2, bởi W. Richard Stevens là huyền thoại.

Ithilgore cũng đã viết một tài liệu rất chi tiết trên raw sockets.

Ngoài ra, Hướng dẫn Lập trình Ổ cắm của Beej được viết tốt, dễ hiểu và đề xuất nhất định.

Bất kể bạn đọc gì, hãy đảm bảo bạn viết mã bổ sung.

0

Bạn cũng xem xét các tài liệu tham khảo tổng quát hơn, Unix ™ Hệ thống lập trình: Giao tiếp, Concurrency, và Chủ đề By Kay A. Robbins, Steven Robbins Prentice Hall ISBN: 0-13-042411-0

vẫn còn, cuốn sách Richard Steven là tài liệu tham khảo đầy đủ nhất về chủ đề đó cụ thể

0

cuốn sách của Michael Kerrisk (Ông cũng là Linux do con người trang nhà duy trì) the linux programming interface

có tất cả mọi thứ về u lập trình nix; các chương từ 57 đến 61 nằm trên ổ cắm.

Các vấn đề liên quan