diff --git a/.travis.yml b/.travis.yml
index 74d7d9c..9c44c0b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,7 +2,6 @@
 sudo: false
 dart:
   - dev
-  - stable
 
 dart_task:
   - test
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 824ba46..2b737e1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 2.0.5
+
+* Update SDK to 2.0.0-dev.
+
 ## 2.0.4
 
 * Declare support for `async` 2.0.0.
diff --git a/lib/http_multi_server.dart b/lib/http_multi_server.dart
index b57e46c..309e57f 100644
--- a/lib/http_multi_server.dart
+++ b/lib/http_multi_server.dart
@@ -133,16 +133,16 @@
     remainingRetries ??= 5;
 
     if (!await supportsIPv4) {
-      return await bind(InternetAddress.LOOPBACK_IP_V6, port);
+      return await bind(InternetAddress.loopbackIPv6, port);
     }
 
-    var v4Server = await bind(InternetAddress.LOOPBACK_IP_V4, port);
+    var v4Server = await bind(InternetAddress.loopbackIPv4, port);
     if (!await supportsIPv6) return v4Server;
 
     try {
       // Reuse the IPv4 server's port so that if [port] is 0, both servers use
       // the same ephemeral port.
-      var v6Server = await bind(InternetAddress.LOOPBACK_IP_V6, v4Server.port);
+      var v6Server = await bind(InternetAddress.loopbackIPv6, v4Server.port);
       return new HttpMultiServer([v4Server, v6Server]);
     } on SocketException catch (error) {
       if (error.osError.errorCode != _addressInUseErrno) rethrow;
diff --git a/lib/src/utils.dart b/lib/src/utils.dart
index 21c335c..3d24a03 100644
--- a/lib/src/utils.dart
+++ b/lib/src/utils.dart
@@ -8,7 +8,7 @@
 /// Returns whether this computer supports binding to IPv6 addresses.
 final Future<bool> supportsIPv6 = () async {
   try {
-    var socket = await ServerSocket.bind(InternetAddress.LOOPBACK_IP_V6, 0);
+    var socket = await ServerSocket.bind(InternetAddress.loopbackIPv6, 0);
     socket.close();
     return true;
   } on SocketException catch (_) {
@@ -19,7 +19,7 @@
 /// Returns whether this computer supports binding to IPv4 addresses.
 final Future<bool> supportsIPv4 = () async {
   try {
-    var socket = await ServerSocket.bind(InternetAddress.LOOPBACK_IP_V4, 0);
+    var socket = await ServerSocket.bind(InternetAddress.loopbackIPv4, 0);
     socket.close();
     return true;
   } on SocketException catch (_) {
diff --git a/pubspec.yaml b/pubspec.yaml
index 7d4114a..ad1bfcc 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,11 +1,11 @@
 name: http_multi_server
-version: 2.0.4
+version: 2.0.5
 author: "Dart Team <misc@dartlang.org>"
 homepage: https://github.com/dart-lang/http_multi_server
 description:
   A dart:io HttpServer wrapper that handles requests from multiple servers.
 environment:
-  sdk: ">=1.13.0 <2.0.0"
+  sdk: ">=2.0.0-dev.55.0 <3.0.0"
 dependencies:
   async: ">=1.2.0 <3.0.0"
 dev_dependencies:
