LinuxSocket Class — netty Architecture
Architecture documentation for the LinuxSocket class in LinuxSocket.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD d4234a66_3b23_bb74_6392_7b4eca8428c6["LinuxSocket"] 30eddeb2_3b08_8376_06d0_a3a8e180330c["LinuxSocket.java"] d4234a66_3b23_bb74_6392_7b4eca8428c6 -->|defined in| 30eddeb2_3b08_8376_06d0_a3a8e180330c e7ee6e9e_71aa_96bc_e1b6_41026f0157ad["LinuxSocket()"] d4234a66_3b23_bb74_6392_7b4eca8428c6 -->|method| e7ee6e9e_71aa_96bc_e1b6_41026f0157ad c6f001d0_1f17_bd74_3a58_90fdc83c5bdb["SocketProtocolFamily()"] d4234a66_3b23_bb74_6392_7b4eca8428c6 -->|method| c6f001d0_1f17_bd74_3a58_90fdc83c5bdb fa534ac5_ebb6_4d64_bee4_a99bbbe02361["sendmmsg()"] d4234a66_3b23_bb74_6392_7b4eca8428c6 -->|method| fa534ac5_ebb6_4d64_bee4_a99bbbe02361 4bd7e1ef_ff10_b733_0066_4ceef281a932["recvmmsg()"] d4234a66_3b23_bb74_6392_7b4eca8428c6 -->|method| 4bd7e1ef_ff10_b733_0066_4ceef281a932 70f27af3_2cb6_5c38_b9f1_407c873644d8["recvmsg()"] d4234a66_3b23_bb74_6392_7b4eca8428c6 -->|method| 70f27af3_2cb6_5c38_b9f1_407c873644d8 cb5e717e_fde3_41f4_2c7b_96ae9e61588a["setTimeToLive()"] d4234a66_3b23_bb74_6392_7b4eca8428c6 -->|method| cb5e717e_fde3_41f4_2c7b_96ae9e61588a 2ca251d5_1ef6_c101_ef60_5810f4c805e1["setInterface()"] d4234a66_3b23_bb74_6392_7b4eca8428c6 -->|method| 2ca251d5_1ef6_c101_ef60_5810f4c805e1 f99f40dd_7c0a_a584_bdb5_61505165f617["setNetworkInterface()"] d4234a66_3b23_bb74_6392_7b4eca8428c6 -->|method| f99f40dd_7c0a_a584_bdb5_61505165f617 8b9702d2_5728_1385_c3b3_a3b939411574["InetAddress()"] d4234a66_3b23_bb74_6392_7b4eca8428c6 -->|method| 8b9702d2_5728_1385_c3b3_a3b939411574 9db13a55_e0da_dcd4_9f9c_caef22e471b5["NetworkInterface()"] d4234a66_3b23_bb74_6392_7b4eca8428c6 -->|method| 9db13a55_e0da_dcd4_9f9c_caef22e471b5 01b16067_2cfe_5641_e182_eca4f3e10eec["joinGroup()"] d4234a66_3b23_bb74_6392_7b4eca8428c6 -->|method| 01b16067_2cfe_5641_e182_eca4f3e10eec c4b19d7f_7c52_b232_b137_be9158a33b06["leaveGroup()"] d4234a66_3b23_bb74_6392_7b4eca8428c6 -->|method| c4b19d7f_7c52_b232_b137_be9158a33b06 cd5cde44_97e9_e3ba_70b6_c79a1ebeaadd["interfaceIndex()"] d4234a66_3b23_bb74_6392_7b4eca8428c6 -->|method| cd5cde44_97e9_e3ba_70b6_c79a1ebeaadd
Relationship Graph
Source Code
transport-classes-epoll/src/main/java/io/netty/channel/epoll/LinuxSocket.java lines 42–508
@UnstableApi
public final class LinuxSocket extends Socket {
private static final long MAX_UINT32_T = 0xFFFFFFFFL;
LinuxSocket(int fd) {
super(fd);
}
SocketProtocolFamily family() {
return ipv6 ? SocketProtocolFamily.INET6 : SocketProtocolFamily.INET;
}
int sendmmsg(NativeDatagramPacketArray.NativeDatagramPacket[] msgs,
int offset, int len) throws IOException {
return Native.sendmmsg(intValue(), ipv6, msgs, offset, len);
}
int recvmmsg(NativeDatagramPacketArray.NativeDatagramPacket[] msgs,
int offset, int len) throws IOException {
return Native.recvmmsg(intValue(), ipv6, msgs, offset, len);
}
int recvmsg(NativeDatagramPacketArray.NativeDatagramPacket msg) throws IOException {
return Native.recvmsg(intValue(), ipv6, msg);
}
void setTimeToLive(int ttl) throws IOException {
setTimeToLive(intValue(), ttl);
}
void setInterface(InetAddress address) throws IOException {
final NativeInetAddress a = NativeInetAddress.newInstance(address);
setInterface(intValue(), ipv6, a.address(), a.scopeId(), interfaceIndex(address));
}
void setNetworkInterface(NetworkInterface netInterface) throws IOException {
InetAddress address = deriveInetAddress(netInterface, family() == SocketProtocolFamily.INET6);
if (address.equals(family() == SocketProtocolFamily.INET ? Native.INET_ANY : Native.INET6_ANY)) {
throw new IOException("NetworkInterface does not support " + family());
}
final NativeInetAddress nativeAddress = NativeInetAddress.newInstance(address);
setInterface(intValue(), ipv6, nativeAddress.address(), nativeAddress.scopeId(), interfaceIndex(netInterface));
}
InetAddress getInterface() throws IOException {
NetworkInterface inf = getNetworkInterface();
if (inf != null) {
Enumeration<InetAddress> addresses = SocketUtils.addressesFromNetworkInterface(inf);
if (addresses.hasMoreElements()) {
return addresses.nextElement();
}
}
return null;
}
NetworkInterface getNetworkInterface() throws IOException {
int ret = getInterface(intValue(), ipv6);
if (ipv6) {
return NetworkInterface.getByIndex(ret);
}
InetAddress address = inetAddress(ret);
return address != null ? NetworkInterface.getByInetAddress(address) : null;
}
private static InetAddress inetAddress(int value) {
byte[] var1 = {
(byte) (value >>> 24 & 255),
(byte) (value >>> 16 & 255),
(byte) (value >>> 8 & 255),
(byte) (value & 255)
};
try {
return InetAddress.getByAddress(var1);
} catch (UnknownHostException ignore) {
return null;
}
}
void joinGroup(InetAddress group, NetworkInterface netInterface, InetAddress source) throws IOException {
final NativeInetAddress g = NativeInetAddress.newInstance(group);
Source
Frequently Asked Questions
What is the LinuxSocket class?
LinuxSocket is a class in the netty codebase, defined in transport-classes-epoll/src/main/java/io/netty/channel/epoll/LinuxSocket.java.
Where is LinuxSocket defined?
LinuxSocket is defined in transport-classes-epoll/src/main/java/io/netty/channel/epoll/LinuxSocket.java at line 42.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free