Documente Academic
Documente Profesional
Documente Cultură
RAPORT
A efectuat: st.gr.TI-181,
Chirtoacă Maxim
Chișinău 2021
Scopul:
2. Cu ajutorul expresiilor regulate să se extragă toate imaginile din raspunsul primit din punctul
1.
3. Utilizînd Socket, HTTP și firele de execuții să se descarce toate imaginile găsite din puncul 2
într-un folder. Imaginile să se descarce utilizînd maximum 4 fire de execuție concomitent.
Codul sursă:
[CreateSocket.cs]
using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Security;
using System.Net.Sockets;
using System.Text;
namespace Lab1
{
public class CreateSocket
{
public string Server { get; set; }
public int Port { get; set; }
public CreateSocket(string server, int port)
{
Server = server;
Port = port;
}
if (tempSocket.Connected)
{
s = tempSocket;
break;
}
else
{
continue;
}
}
return s;
}
return messageData.ToString();
}
[Http.cs]
using System;
using System.Collections.Generic;
using System.Net.Sockets;
using System.Text;
namespace Lab1
{
public class HTTP : CreateSocket
{
public HTTP(string server, int port) : base(server, port) { }
s.Close();
Console.WriteLine("Client closed");
}
return page;
}
}
}
[Request.cs]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
namespace Lab1
{
class Request
{
public string Headers { get; set; }
Headers =
"Get " + path + " HTTP/1.1\r\n" +
"Host: " + server + "\r\n" +
"Accept: */*\r\n" +
"Accept Encoding: gzip, deflate\r\n" +
"Accept Language: ru-Ru,ru;q=0.9, en-Us;q=0.8,en;q=0.7\r\n" +
"Connection: close\r\n\r\n";
}
}
}
[Urls.cs]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
namespace Lab1
{
public class Urls
{
private Object MatchLock = new object();
private int Index { get; set; }
private string[] Matches { get; set; }
public CreateSocket CurrentSocket { get; set; }
public Urls(CreateSocket socket, MatchCollection mathes)
{
CurrentSocket = socket;
Matches = mathes.Cast<Match>()
.Select(MatchSelect)
.ToArray();
Index = -1;
}
lock (MatchLock)
{
if (Index + 1 < Matches.Length)
{
Index += 1;
}
return Matches.ElementAt(Index);
}
}
if (value.IndexOf("/") == 0)
{
return baseUrl + value;
}
}
}
[Program.cs]
using System;
using System.Net;
using System.Net.Security;
using System.Net.Sockets;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
namespace Lab1
{
class Program
{
static void Main(string[] args)
{
string host = "me.utm.md";
int port = 80;
int threadsNr = 4;
CreateSocket socket = GetSocketbyPort(host, port);
StartThreads(urls, threadsNr);
Console.ReadLine();
}
return rgx.Matches(html);
}
Concluzii:
La lucrarea data a fost studiata posibilitatea de descarcare a unor fisiere de pe server utilizand
socket. Ca scop a fost descarcarea image fisierelor de pe site-ul me.utm.md.