ServerSocket

void main() async {
ServerSocket serverSocket = await ServerSocket.bind("localhost", 8888);
serverSocket.listen((Socket client) {
client.write("ok");
client.close();
});
}

Socket

Future<void> main() async {
Socket socket = await Socket.connect("localhost", 8888);
socket.listen((data) {
print(String.fromCharCodes(data));
}, onDone: (){
socket.destroy();
});
}

判定某个端口是否被占用

/// port为0的时候会随机返回一个没用过的port
Future<int> getUnusedPort(int initPort)async {
int port;
ServerSocket serverSocket;
try{
serverSocket = await ServerSocket.bind("localhost", initPort);
port = serverSocket.port;
await serverSocket.close();
}on Exception{
port = -1;
}
return port;
}