111,097
社区成员




private Socket _socket;
private void OnAccept(IAsyncResult ar)
{
try
{
Socket new_accept = _socket.EndAccept(ar); //新连接socket
ProxySocket proxy = GetProxy(new_accept); //创建代理socket
proxy.DisConnected += new DisConnectedEventHandler(proxy_DisConnected); //离线事件
proxy.MessageReceived += new MessageReceivedEventHandler(proxy_MessageReceived); //接收数据事件
proxy.StartReceive(); //代理socket开始接收数据
if (Connected != null)
{
Connected.BeginInvoke(proxy, null, null); //Connected事件
}
_socket.BeginAccept(new AsyncCallback(OnAccept), _socket); //开始下一次异步侦听
}
catch (Exception ex)
{
}
}
/// <summary>
/// 接收消息
/// </summary>
/// <param name="clientSocket"></param>
private static void ReceiveMessage(object clientSocket)
{
Socket myClientSocket = (Socket)clientSocket;
while (true)
{
try
{
//通过clientSocket接收数据
int receiveNumber = myClientSocket.Receive(result);
Console.WriteLine("接收客户端{0}消息{1}", myClientSocket.RemoteEndPoint.ToString(), Encoding.ASCII.GetString(result, 0, receiveNumber));
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
myClientSocket.Shutdown(SocketShutdown.Both);
myClientSocket.Close();
break;
}
}
}