我按照链接创建了一个异步 TCP 服务器。但是,所有示例仅涵盖发送数据作为对接收的响应。我的问题是如何将数据推送到某个 TCP 客户端。
假设需要将一个字节 [] 发送/推送到客户端 ID 1。如何使用 SocketAsyncEventArgs 架构来实现这一点?
我知道我必须保留活动连接和客户端 ID 的列表。为了推送数据,这个列表应该是什么样子?
public bool Send(Socket socket, byte[] message)
{
SocketAsyncEventArgs completeArgs = new SocketAsyncEventArgs();
if (socket.Connected)
{
// Prepare arguments for send/receive operation.
completeArgs.SetBuffer(message, 0, message.Length);
completeArgs.UserToken = socket;
completeArgs.AcceptSocket = socket;
completeArgs.Completed += new EventHandler<SocketAsyncEventArgs>(OnIOCompleted);
// Start sending asyncronally.
socket.SendAsync(completeArgs);
}
return true;
}