C# 勉強中3 ネットワークとか

ほとんどコメントもないコードを投げ捨てる(ノ ゜Д゜)ノ ====↓↓
結構パフォーマンス良いですな。(ローカル同士だから当たり前か・・・)
家庭内LANとかないんだけど・・・

#region Using directives

using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Sockets;
using System.Net;
using System.IO;
using System.Threading;

#endregion

namespace Hige3
{
    // 実験だしExceptionは考えない
    class HigeTest
    {
        public static void ReadWrite(Stream inStream, Stream outStream)
        {
            Byte bytes = new Byte[4096];
            int readSize;
            while ( (readSize = inStream.Read(bytes, 0, bytes.Length) ) != 0)
            {
                outStream.Write(bytes, 0, readSize);
            }
        }

        public static void Receive(Object filePath)
        {
            FileInfo fileInfo = new FileInfo( (String)filePath);
            Stream outStream = fileInfo.Open(FileMode.Create);

            TcpListener server = new TcpListener(IPAddress.Parse("127.0.0.1"), 1500);
            server.Start();
            TcpClient socket = server.AcceptTcpClient();
            Stream inStream = socket.GetStream();

            ReadWrite(inStream, outStream);
            inStream.Close();
            outStream.Close();
        }

        public static void Send(Object filePath)
        {
            FileInfo fileInfo = new FileInfo( (String)filePath);
            Stream inStream = fileInfo.Open(FileMode.Open, FileAccess.Read);
            TcpClient client = new TcpClient("127.0.0.1", 1500);
            Stream outStream = client.GetStream();
            ReadWrite(inStream, outStream);
            outStream.Close();
            inStream.Close();
        }
    }

    class HigeMain
    {
        static void Main(string args)
        {
            if (args.Length != 1)
            {
                Console.WriteLine("Hige3.exe filename");
                return;
            }

            Thread thread = new Thread( (new ParameterizedThreadStart(HigeTest.Receive) ));
            thread.Start("_" + args[0]);

            Thread.Sleep(500);
            HigeTest.Send(args[0]);
        }
    }
}