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]);
}
}
}