我正在Windows Store(8 \ Metro \ RT)应用程序中创建套接字客户端(TCP),我正在尝试使用此代码发送数据:
await _socket.ConnectAsync(new HostName(ipAddress), port);
_dataWriter = new DataWriter(_socket.OutputStream);
_dataWriter.WriteBytes(bytes);
await _dataWriter.StoreAsync();
//Does execution in this line mean that bytes were sent
//and TCP packet acknowledge has been received?
所以问题出在评论中。
答案 0 :(得分:5)
没有。写操作的完成仅表示数据已复制到OS缓冲区。
当您获得数据的TCP ACK时,无法通知您;但是,如果您不获取一个(在内置TCP重试之后),那么您在套接字上执行的 next 操作将导致错误。