Example #1
0
            private void OnSocket5Processed(Socket5 sender, bool result)
            {
                List<string> keys = new List<string>();
                foreach (KeyValuePair<string, ByteStream> byteStream in this.proxyList)
                {
                    if (byteStream.Value.Initiator != null && byteStream.Value.Target != null)
                    {
                        if (!byteStream.Value.Initiator.Connected || !byteStream.Value.Target.Connected)
                        {
                            keys.Add(byteStream.Key);
                        }
                    }
                }

                foreach (string key in keys)
                {
                    this.proxyList.Remove(key);
                }

                keys.Clear();

                if (result)
                {
                    if (!this.proxyList.ContainsKey(sender.BindAddress))
                    {
                        ByteStream byteStream = new ByteStream();
                        byteStream.Target = sender.SocketConnection;
                        this.proxyList.Add(sender.BindAddress, byteStream);
                    }
                    else
                    {
                        ByteStream byteStream = this.proxyList[sender.BindAddress];
                        byteStream.Initiator = sender.SocketConnection;
                        this.proxyList[sender.BindAddress] = byteStream;
                    }
                }
                else
                {
                    sender.OnSocket5Processed -= new Socket5Handler(OnSocket5Processed);
                    sender.Stop();

                }
            }
Example #2
0
            private void EndAccept(IAsyncResult ar)
            {
                if (!bListening)
                {
                    return;
                }

                // Retrieve the state object and the handler socket
                // from the async state object.
                Console.WriteLine("Socket Accepted");

                // Get the socket that handles the client request.
                Socket listener = (Socket)ar.AsyncState;
                Socket socket = listener.EndAccept(ar);

                Socket5 socket5 = new Socket5(socket);
                socket5.OnSocket5Processed += new Socket5Handler(OnSocket5Processed);
                socket5.Start();

                AllDone.Set();

            }