Tôi muốn tạo một máy chủ HTTP đơn giản trong Android để cung cấp một số nội dung cho máy khách.
Bất kỳ lời khuyên nào về cách xây dựng máy chủ hoặc sử dụng bất kỳ thư viện hiện có nào?
Tôi muốn tạo một máy chủ HTTP đơn giản trong Android để cung cấp một số nội dung cho máy khách.
Bất kỳ lời khuyên nào về cách xây dựng máy chủ hoặc sử dụng bất kỳ thư viện hiện có nào?
Câu trả lời:
Hãy xem xét điều này: https://github.com/NanoHttpd/nanohttpd . Rất nhỏ, được viết bằng Java. Tôi đã sử dụng nó mà không có vấn đề gì.
NanoHttpd hoạt động giống như một sự quyến rũ trên Android - chúng tôi có mã trong quá trình sản xuất, trong tay người dùng, mã đó được xây dựng trên đó.
Giấy phép hoàn toàn cho phép sử dụng NanoHttpd cho mục đích thương mại mà không có bất kỳ tác động "lan truyền" nào.
Điều này có thể được thực hiện bằng ServerSocket , giống như trên JavaSE. Lớp học này có sẵn trên Android. android.permission.INTERNET
bắt buộc.
Phần phức tạp hơn duy nhất, bạn cần một chuỗi chờ riêng trên ServerSocket, phục vụ các ổ cắm phụ đến từ accept
phương thức của nó . Bạn cũng cần dừng và tiếp tục chuỗi này nếu cần. Cách tiếp cận đơn giản nhất dường như giết chuỗi chờ bằng cách đóng ServerSocket. Nếu bạn chỉ cần một máy chủ trong khi hoạt động của bạn ở trên cùng, thì việc bắt đầu và dừng chuỗi ServerSocket có thể được ràng buộc khá thanh lịch với các phương thức vòng đời hoạt động. Ngoài ra, nếu máy chủ có nhiều người dùng, thì có thể tốt cho các yêu cầu dịch vụ trong các chuỗi được phân nhánh. Nếu chỉ có một người dùng, điều này có thể không cần thiết.
Nếu bạn cần phải nói cho người dùng trên đó IP là nghe máy chủ, sử dụng networkinterface .getNetworkInterfaces (), câu hỏi này có thể cho thêm thủ đoạn.
Cuối cùng, ở đây có thể có một máy chủ Android tối thiểu hoàn chỉnh, rất ngắn gọn, đơn giản và có thể dễ hiểu hơn các ứng dụng người dùng cuối hoàn chỉnh, được đề xuất trong các câu trả lời khác.
Một máy chủ khác bạn có thể thử http://tjws.sf.net , thực ra nó đã cung cấp phiên bản hỗ trợ Android.
Bạn có thể thử phiên bản Restlet cho Android:
Nguồn có thể được tải xuống từ trang web Restlet :
Nếu bạn đang sử dụng kotlin, hãy xem xét các thư viện này. Nó được xây dựng cho ngôn ngữ kotlin. https://github.com/weeChanc/AndroidHttpServer https://github.com/ktorio/ktor
AndroidHttpServer rất nhỏ, nhưng tính năng cũng ít hơn.
Ktor là một thư viện rất hay và cách sử dụng cũng đơn giản