MCPcopy Create free account
hub / github.com/DeNA/PacketProxy / send

Method send

src/main/java/core/org/xbill/DNS/TCPClient.java:41–72  ·  view source on GitHub ↗
(byte [] data)

Source from the content-addressed store, hash-verified

39}
40
41void
42send(byte [] data) throws IOException {
43 SocketChannel channel = (SocketChannel) key.channel();
44 verboseLog("TCP write", channel.socket().getLocalSocketAddress(),
45 channel.socket().getRemoteSocketAddress(), data);
46 byte [] lengthArray = new byte[2];
47 lengthArray[0] = (byte)(data.length >>> 8);
48 lengthArray[1] = (byte)(data.length & 0xFF);
49 ByteBuffer [] buffers = new ByteBuffer[2];
50 buffers[0] = ByteBuffer.wrap(lengthArray);
51 buffers[1] = ByteBuffer.wrap(data);
52 int nsent = 0;
53 key.interestOps(SelectionKey.OP_WRITE);
54 try {
55 while (nsent < data.length + 2) {
56 if (key.isWritable()) {
57 long n = channel.write(buffers);
58 if (n < 0)
59 throw new EOFException();
60 nsent += (int) n;
61 if (nsent < data.length + 2 &&
62 System.currentTimeMillis() > endTime)
63 throw new SocketTimeoutException();
64 } else
65 blockUntil(key, endTime);
66 }
67 }
68 finally {
69 if (key.isValid())
70 key.interestOps(0);
71 }
72}
73
74private byte []
75_recv(int length) throws IOException {

Callers 1

sendrecvMethod · 0.95

Calls 3

verboseLogMethod · 0.80
blockUntilMethod · 0.80
writeMethod · 0.65

Tested by

no test coverage detected