日期:2014-05-17 浏览次数:20417 次
private static void OnRecievedData(IAsyncResult ar)
{
SocketCoderClient client = (SocketCoderClient)ar.AsyncState;
IList<ArraySegment<byte>> list=new List<ArraySegment<byte>>();
byte[] aryRet = client.GetRecievedData(ar);
ArraySegment<byte> arrByte = new ArraySegment<byte>(aryRet);
list.Add(arrByte);
//.......省略N步
//有一个客户端列表ClientsList,List<SocketCoderClient>类型
//这里的目的是向每个客户端发送所有客户端的数据
foreach(SocketCoderClient scc in ClientsList)
{
//判断等省略
clientSend.ReadOnlySocket.Send(aryRet);
}
}
// 摘要:
// 将列表中的一组缓冲区发送到连接的 System.Net.Sockets.Socket。
//
// 参数:
// buffers:
// System.Byte 类型的 System.ArraySegment<T> 的列表,它包含要发送的数据。
//
// 返回结果:
// 已发送到 System.Net.Sockets.Socket 的字节数。
//
// 异常:
// System.ArgumentNullException:
// buffers 为 null。
//
// System.ArgumentException:
// buffers 为空。
//
// System.Net.Sockets.SocketException:
// 试图访问套接字时发生错误。请参见下面的备注部分。
//
// System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public int Send(IList<ArraySegment<byte>> buffers);
Socket client_socket;
byte[] response = new byte[150000];
SocketAsyncEventArgs socketEventArg = new SocketAsyncEventArgs();
socketEventArg.Completed += OnReceiveCompleted;
socketEventArg.SetBuffer(response, 0, response.Length);&nbs