using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.Net.Sockets; namespace FS_CLIENT.Networking.Proxy { class GameSocket { Socket gSocket; Socket gClient; ProxyClient pClient; byte[] _buffer; public GameSocket() { gSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); } public void Start() { gSocket.Bind(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9010)); gSocket.Listen(0); gSocket.BeginAccept(new AsyncCallback(OnConnect), null); } private void OnConnect(IAsyncResult ar) { gClient = gSocket.EndAccept(ar); pClient = new ProxyClient(gClient); _buffer = new byte[1024]; gClient.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallback), null); } private void ReceiveCallback(IAsyncResult ar) { try { int len = gClient.EndReceive(ar); Array.Resize(ref _buffer, len); pClient.Send(_buffer); Console.WriteLine(BitConverter.ToString(_buffer)); _buffer = new byte[1024]; if (len <= 0) { Environment.Exit(0); } else { gClient.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallback), null); } } catch { } } } }