Member 14852451
использование системы;
использование системы.Коллекции.Общий;
использование System.Linq;
использование System.Text;
использование системы.Нарезание резьбы;
использование системы.ИО;
использование System.Net;
использование System.Net.Sockets;
использование системы.Рисование;
использование системы.Рисование.Изображений;
использование системы.ИО;
пространство имен ImageClient
{
классная программа
{
static void Main(string[] args)
{
Socket socket = новый сокет(AddressFamily.Интерсеть, SocketType.Трансляция, ProtocolType.ПТС);
пробовать
{
Адрес узла IP-адрес = IP-адрес.Parse("127.0.0.1");
IPEndPoint hostEndPoint = новая IPEndPoint(адрес хоста, 8001);
Приставка.WriteLine("подключение...");
разъем.Подключение(hostEndPoint);
инт image_counter = 0;
ASCIIEncoding asciiEnc = новое ASCIIEncoding();
в то время как (правда)
{
Приставка.Write("введите команду: ");
строка cmd = консоль.Линия чтения();
if (cmd == "screencap")
{
byte[] binDataOut = asciiEnc.Метод getbytes(УМК);
разъем.Send(binDataOut, 0, binDataOut.Длина, SocketFlags.None);
byte[] binDataIn = новый байт[255];
List<byte> imageByteList = новый список<byte>();
Нить.Спать(1000);
int chunk = 1;
int k = сокет.Receive(binDataIn, 0, binDataIn.Длина, SocketFlags.None);
в то время как (k >= 255)
{
Приставка.WriteLine("chunk num:" + chunk++);
imageByteList.AddRange(binDataIn);
k = гнездо.Receive(binDataIn, 0, binDataIn.Длина, SocketFlags.None);
}
imageByteList.AddRange(binDataIn);
используя (трансляция потоке MemoryStream = новая потоке MemoryStream(imageByteList.Метод toArray()))
{
Изображение img = изображение.FromStream(поток);
img.Save(строка.Формат("image_from_server{0}.jpg", image_counter++), ImageFormat.Jpeg);
}
}
}
}
catch (исключение e)
{
Приставка.WriteLine("error...." + e.StackTrace);
разъем.Закрывать();
}
Приставка.WriteLine("Готово!");
}
}
}