我正在 Windows 应用商店 (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?
所以问题在评论中。
最佳答案
没有。写操作的完成只意味着数据已经被复制到操作系统缓冲区。
当您收到数据的 TCP ACK 时,无法收到通知;但是,如果您没有得到一个(在内置 TCP 重试之后),那么您在套接字上执行的下一个操作将导致错误。
关于c# - StreamSocket下DataWriter的StoreAsync是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14056714/