2010-11-04 34 views
13

Tôi thấy các chủ đề này UNIX socket implementation for Java?http://forums.sun.com/thread.jspa?threadID=713266.Ổ cắm miền UNIX trong Java

Liên kết thứ hai cho biết Java đã hỗ trợ Ổ cắm miền UNIX. Nếu đó là sự thật tôi cần phải thực hiện lớp nào từ Java ?.

Từ liên kết đầu tiên, nó nói rằng Java không hỗ trợ Ổ cắm miền UNIX. Nếu bạn cần UNIX Domain Socket, bạn phải sử dụng thư viện của bên thứ ba.

Vì vậy, đó là nó?

+4

Các liên kết thứ hai (forums.sun.com) bị phá vỡ và dường như dẫn đến một số trang đâu hàng đầu của Oracle. Không tìm thấy archive.org, BTW, thật đáng buồn. – Tino

Trả lời

13

Java không thể tạo hoặc truy cập Ổ cắm miền Unix mà không sử dụng thư viện bên thứ ba (bản địa). Nhận xét cuối cùng về liên kết thứ hai ở trên đề cập đến điều này.

Liên kết đầu tiên có một số thông tin tốt (và chính xác) về nó.

16

Bạn có thể sử dụng junixsocket: https://github.com/kohlschutter/junixsocket

Nó cung cấp hỗ trợ AF-UNIX qua một thư viện JNI, sử dụng các API Java Socket. Nó thậm chí còn cho phép kết nối với MySQL từ Java (Connector/J) thông qua các ổ cắm Unix.

+2

Vào tháng 11 năm 2015, dự án * junixsocket * nằm tại https://github.com/kohlschutter/junixsocket – VirtualMichael

+3

Hãy cẩn thận, nó chỉ hỗ trợ các ổ cắm Unix trong chế độ STREAM. Kiểm tra những gì máy chủ của bạn mở ra, với 'netstat -ux'. Xem thêm [Sự khác biệt giữa các ổ cắm STREAM của UNIX và các ổ cắm DATAGRAM] (http://stackoverflow.com/questions/13953912). – Florian

3

Netty cũng hỗ trợ nó kể từ phiên bản 4.0.26: https://github.com/netty/netty/pull/3344

+1

Hãy cẩn thận, nó chỉ hỗ trợ các ổ cắm Unix trong chế độ STREAM. Kiểm tra những gì máy chủ của bạn mở ra, với 'netstat -ux'. Xem thêm [Sự khác biệt giữa các ổ cắm STREAM của UNIX và các ổ cắm DATAGRAM] (http://stackoverflow.com/questions/13953912). – Florian

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