All pastes #394906 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-03-14 17:25 UTC
rendered paste body
using System;

using System.Threading;

using System.Net.Sockets;

using System.Net;



namespace Test

{

    public class TestClass

    {

        Socket sender;

        Socket receiver;
	byte[] sendbuffer;
	byte[] receivebuffer; 



        public TestClass()

        {
	    this.sendbuffer = new byte[1638400];
            this.receivebuffer = new byte[1638400];

            this.receiver = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            this.sender = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

        }



        public static void Main(string[] args)

        {

            TestClass t = new TestClass();

            t.Start();



            System.Threading.Thread.Sleep(10000);

        }


	delegate void TestDel(int number);


        public void Start()

        {

            this.receiver.Bind(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 5123));

            this.receiver.Listen(2);

            IAsyncResult result =  receiver.BeginAccept(null, null);

            this.sender.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 5123));



            this.receiver = receiver.EndAccept(result);

            this.sender.BeginSend(sendbuffer, 0, sendbuffer.Length-10, SocketFlags.None, new AsyncCallback(EndSend), null);

            this.receiver.BeginReceive(receivebuffer, 0, receivebuffer.Length, SocketFlags.None, new AsyncCallback(EndReceive), null);

        }



        public void EndSend(IAsyncResult result)

        {
	  TestDel d = new TestDel(PrintNumber);
	    d(1);

            Console.WriteLine("Sent");

            this.sender.EndSend(result);

            this.sender.BeginSend(sendbuffer, 0, sendbuffer.Length, SocketFlags.None, new AsyncCallback(EndSend), null);

        }



        public void EndReceive(IAsyncResult result)

        {
	  TestDel d = new TestDel(PrintNumber);
	    d(2);

            Console.WriteLine("Received");

            this.receiver.EndReceive(result);

            this.receiver.BeginReceive(receivebuffer, 0, receivebuffer.Length, SocketFlags.None, new AsyncCallback(EndReceive), null);

        }



        public void PrintNumber(int number)

        {

            //Console.WriteLine(number);

        }

    }

}