| // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| /// @assertion int send(List<int> buffer, InternetAddress address, int port) |
| /// Send a datagram. |
| /// |
| /// Returns the number of bytes written. This will always be either the size of |
| /// buffer or 0. |
| /// |
| /// @description Checks that method send returns either the size of buffer or 0. |
| /// Test the case when buffer length is greater then a maximum length of a |
| /// datagram which can be received |
| /// @author ngl@unipro.ru |
| /// @issue 31873 |
| |
| |
| import "dart:io"; |
| import "../http_utils.dart"; |
| import "../../../Utils/expect.dart"; |
| |
| var localhost = InternetAddress.loopbackIPv4; |
| |
| main() async { |
| RawDatagramSocket producer = await RawDatagramSocket.bind(localhost, 0); |
| RawDatagramSocket receiver = await RawDatagramSocket.bind(localhost, 0); |
| int listSize = 100000; |
| List<List<int>> toSent = [getList(listSize)]; |
| List<int> bytesWritten = await sendDatagramOnce(producer, toSent, localhost, |
| receiver.port); |
| producer.close(); |
| if (wasSent(bytesWritten)) { |
| Expect.equals(listSize, bytesWritten[0]); |
| } |
| receiver.close(); |
| } |