Система разработки структурных и функциональных схем технического обеспечения промышленной автоматизации

Приложение для организации и контроля разработки программного обеспечения, сокращающее сроки проектирования программных продуктов и оптимизирующее данный процесс. Технологии создания приложений на платформе .NET. Алгоритм получения и обновления списка.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 27.11.2014
Размер файла 861,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Class1.cs - представляет собой интерфейс межсетевого взаимодействия и обнаружения компьютеров в сети через сокеты. Использует системные вызовы WinApi.

ProjectEnumProvider.cs - представляет список доступных проектов и связанных с ними файлов.

ProjectTypes.cs - предоставляет операции со списком проектов.

wpDataSet.xsd - представляет таблицы из базы даных в виде набора данных.

Технологический раздел

Руководство пользователя

Для использования системы заполнить базу данных в соответствии с заданными таблицами.

Для запуска приложения необходимо выполнить файл NetListSample.exe.

Руководство системного администратора

Для корректной работы программы необходимо наличие правильно заполненной базы данных.

Дополнительных настроек программного обеспечения не требуется.

Руководство программиста

Программа написана на языке C# с применением сервера базы данных Microsoft SQL Server.. Используемая среда разработки - Visual Studio 2013.

Библиографический список

ЕСКД. Справочное пособие. С.С.Ворушек, А.А.Волков, М.М.Ефимова. и др. - М.: Изд-во Стандартов, 1989. - 362 с.

ЕСКД. ГОСТ 15.001-88, техническое задание

ЕСПД. Сборник стандартов, - М.: Изд-во Стандартов, 1988. -128 с.

ЕСС АСУ. Сборник стандартов.- М.: Изд-во Стандартов, 1988.-120 с.

Приложение. Листинг программы

AddUser.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Data.Sql;

using System.Data.Linq;

using System.Data.Linq.Mapping;

using System.Runtime.Remoting;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace NetListSample

{

public partial class AddUser : Form

{

public AddUser()

{

InitializeComponent();

InitializeListBox();

}

DataContext db =

new DataContext(@"Data Source=ПОЛЬЗОВАТЕЛЬ-ПК\Curs;Initial Catalog=wp;Integrated Security=True");

private void InitializeListBox()

{

StringBuilder sb = new StringBuilder();

sb.Append("Роль \t \t \t Права доступа");

listBox1.Items.Add(sb);

/*DataContext db =

new DataContext(@"Data Source=ПОЛЬЗОВАТЕЛЬ-ПК\Curs;Initial Catalog=wp;Integrated Security=True");*/

Table<Role> roles = db.GetTable<Role>();

IQueryable<Role> rolesValue =

from role in roles

select role;

foreach (var id in rolesValue)

{

//listBox1.Items.Add(id.RoleName);

var hleb = new StringBuilder().Append(id.RoleName.Trim()+"\t \t").Append(id.RoleAttributes.Trim());

listBox1.Items.Add(hleb);

//sb.Clear();

}

}

private void button1_Click(object sender, EventArgs e)

{

string userName = Convert.ToString(txtUserName.Text);

int roleId = listBox1.SelectedIndex;

db.ExecuteCommand("INSERT INTO wp.dbo.Users VALUES('" + userName + "'," + roleId + ")");

}

}

}

NetSockets.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace NetListSample

{

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Runtime.InteropServices;

using System.Collections;

namespace PortTest

{

public class ComputersInLocalNetwork

{

[DllImport("netapi32.dll", EntryPoint = "NetServerEnum")]

public static extern NERR NetServerEnum(

[MarshalAs(UnmanagedType.LPWStr)]string ServerName,

int Level, out IntPtr BufPtr,

int PrefMaxLen, ref int EntriesRead,

ref int TotalEntries, SV_101_TYPES ServerType,

[MarshalAs(UnmanagedType.LPWStr)] string Domain,

int ResumeHandle);

[DllImport("netapi32.dll", EntryPoint = "NetApiBufferFree")]

public static extern NERR NetApiBufferFree(IntPtr Buffer);

[StructLayout(LayoutKind.Sequential)]

public struct SERVER_INFO_101

{

[MarshalAs(UnmanagedType.U4)]

public uint sv101_platform_id;

[MarshalAs(UnmanagedType.LPWStr)]

public string sv101_name;

[MarshalAs(UnmanagedType.U4)]

public uint sv101_version_major;

[MarshalAs(UnmanagedType.U4)]

public uint sv101_version_minor;

[MarshalAs(UnmanagedType.U4)]

public uint sv101_type;

[MarshalAs(UnmanagedType.LPWStr)]

public string sv101_comment;

}

/// <summary>

/// список ошибок, возвращаемых NetServerEnum

/// </summary>

public enum NERR

{

NERR_Success = 0, // успех

ERROR_ACCESS_DENIED = 5,

ERROR_NOT_ENOUGH_MEMORY = 8,

ERROR_BAD_NETPATH = 53,

ERROR_NETWORK_BUSY = 54,

ERROR_INVALID_PARAMETER = 87,

ERROR_INVALID_LEVEL = 124,

ERROR_MORE_DATA = 234,

ERROR_EXTENDED_ERROR = 1208,

ERROR_NO_NETWORK = 1222,

ERROR_INVALID_HANDLE_STATE = 1609,

ERROR_NO_BROWSER_SERVERS_FOUND = 6118,

}

/// <summary>

/// Типы серверов

/// </summary>

[Flags]

public enum SV_101_TYPES : uint

{

SV_TYPE_WORKSTATION = 0x00000001,

SV_TYPE_SERVER = 0x00000002,

SV_TYPE_SQLSERVER = 0x00000004,

SV_TYPE_DOMAIN_CTRL = 0x00000008,

SV_TYPE_DOMAIN_BAKCTRL = 0x00000010,

SV_TYPE_TIME_SOURCE = 0x00000020,

SV_TYPE_AFP = 0x00000040,

SV_TYPE_NOVELL = 0x00000080,

SV_TYPE_DOMAIN_MEMBER = 0x00000100,

SV_TYPE_PRINTQ_SERVER = 0x00000200,

SV_TYPE_DIALIN_SERVER = 0x00000400,

SV_TYPE_XENIX_SERVER = 0x00000800,

SV_TYPE_SERVER_UNIX = SV_TYPE_XENIX_SERVER,

SV_TYPE_NT = 0x00001000,

SV_TYPE_WFW = 0x00002000,

SV_TYPE_SERVER_MFPN = 0x00004000,

SV_TYPE_SERVER_NT = 0x00008000,

SV_TYPE_POTENTIAL_BROWSER = 0x00010000,

SV_TYPE_BACKUP_BROWSER = 0x00020000,

SV_TYPE_MASTER_BROWSER = 0x00040000,

SV_TYPE_DOMAIN_MASTER = 0x00080000,

SV_TYPE_SERVER_OSF = 0x00100000,

SV_TYPE_SERVER_VMS = 0x00200000,

SV_TYPE_WINDOWS = 0x00400000,

SV_TYPE_DFS = 0x00800000,

SV_TYPE_CLUSTER_NT = 0x01000000,

SV_TYPE_TERMINALSERVER = 0x02000000,

SV_TYPE_CLUSTER_VS_NT = 0x04000000,

SV_TYPE_DCE = 0x10000000,

SV_TYPE_ALTERNATE_XPORT = 0x20000000,

SV_TYPE_LOCAL_LIST_ONLY = 0x40000000,

SV_TYPE_DOMAIN_ENUM = 0x80000000,

SV_TYPE_ALL = 0xFFFFFFFF,

}

// получим список всех компьюетеров

public static List<string> GetServerList(SV_101_TYPES type)

{

SERVER_INFO_101 si;

IntPtr pInfo = IntPtr.Zero;

int etriesread = 0;

int totalentries = 0;

List<string> srvs = new List<string>();

try

{

NERR err = NetServerEnum(null, 101, out pInfo, -1, ref etriesread, ref totalentries, SV_101_TYPES.SV_TYPE_ALL, null, 0);

if ((err == NERR.NERR_Success || err == NERR.ERROR_MORE_DATA) && pInfo != IntPtr.Zero)

{

int ptr = pInfo.ToInt32();

for (int i = 0; i < etriesread; i++)

{

si = (SERVER_INFO_101)Marshal.PtrToStructure(new IntPtr(ptr), typeof(SERVER_INFO_101));

srvs.Add(si.sv101_name.ToString()); // добавляем имя сервера в список

ptr += Marshal.SizeOf(si);

}

}

}

catch (Exception) { /* обработка ошибки нифига не делаем :(*/ }

finally

{ // освобождаем выделенную память

if (pInfo != IntPtr.Zero) NetApiBufferFree(pInfo);

}

return (srvs);

}

}

}

}

DbProvider.cs

using System;

using System.Collections.Generic;

using System.Data.Linq;

using System.Data.Linq.Mapping;

using System.Linq;

using System.Security.AccessControl;

using System.Text;

using System.Threading.Tasks;

namespace NetListSample

{

[Table(Name = "projectTypes")]

class projectTypes

{

/*private int _id;

[Column(IsPrimaryKey = true, Storage = "_id")]

public int ID

{

get { return this._id; }

set { this._id = value; }

}*/

private string _projectType;

[Column(IsPrimaryKey = false, Storage = "_projectType")]

public string ProjectType

{

get { return this._projectType; }

set { this._projectType = value; }

}

}

[Table(Name = "Users")]

class Users

{

private int _id;

[Column(IsPrimaryKey = true, Storage ="_id")]

public int ID

{

get { return this._id; }

set { this._id = value; }

}

private string _name;

[Column(IsPrimaryKey = false, Storage = "_name")]

public string Name

{

get { return this._name; }

set { this._name = value; }

}

private int _role;

[Column(IsPrimaryKey = false, Storage = "_role")]

public int Role

{

get { return this._role; }

set { this._role = value; }

}

}

[Table(Name = "Projects")]

class Projects

{

private int _id;

[Column(IsPrimaryKey = true, Storage = "_id")]

public int ID

{

get { return _id; }

set { this._id = value; }

}

private int _countOfFiles;

[Column(IsPrimaryKey = true, Storage = "_countOfFiles")]

public int CountOfFiles

{

get { return _countOfFiles; }

set { this._countOfFiles = value; }

}

private int _completed;

[Column(IsPrimaryKey = true, Storage = "_completed")]

public int Completed

{

get { return _completed; }

set { this._completed = value; }

}

private DateTime _dateCompleted;

[Column(IsPrimaryKey = true, Storage = "_dateCompleted")]

public DateTime DateCompleted

{

get { return _dateCompleted; }

set { this._dateCompleted = value; }

}

}

[Table(Name = "WorkRoles")]

class workRoles

{

private int _id;

[Column(IsPrimaryKey = true, Storage = "_id")]

public int ID

{

get { return this._id; }

set { this._id = value; }

}

private string _workType;

[Column(IsPrimaryKey = false, Storage = "_workType")]

public string WorkType

{

get { return this._workType; }

set { this._workType = value; }

}

}

[Table(Name = "Roles")]

class Role

{

private int _id;

[Column(IsPrimaryKey = true, Storage = "_id")]

public int ID

{

get { return this._id; }

set { this._id = value; }

}

private string _RoleName;

[Column(IsPrimaryKey = true, Storage = "_RoleName")]

public string RoleName

{

get { return this._RoleName; }

set { this._RoleName = value; }

}

private string _RoleAttributes;

[Column(IsPrimaryKey = true, Storage = "_RoleAttributes")]

public string RoleAttributes

{

get { return this._RoleAttributes; }

set { this._RoleAttributes = value; }

}

}

}

DivineTasks.cs

using System;

using System.Collections.Generic;

using System.Data.Linq;

using System.IO;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace NetListSample

{

public class DivineTasks

{

private List<string> computers = new List<string>();

private List<string> fileList = new List<string>();

private List<string> roles = new List<string>();

public void AddComp(string computerIp)

{

this.computers.Add(computerIp);

}

public void AddFile(string filePath)

{

this.fileList.Add(filePath);

}

public void AddRole(string role)

{

this.roles.Add(role);

}

public void TransactDb()

{

DataContext db =

new DataContext(@"Data Source=ПОЛЬЗОВАТЕЛЬ-ПК\Curs;Initial Catalog=wp;Integrated Security=True");

int i = 0;

Random r = new Random();

foreach (var file in fileList)

{

var role = roles[r.Next(0, roles.Count - 1)];

/*var computer = computers[0];

fileList.Remove(computer);*/

var computer = computers[i];

if (i != computers.Count - 1) i++;

else

{

i = 0;

}

StringBuilder command = new StringBuilder();

command.Append("INSERT INTO wp.dbo.DivineRoles VALUES('");

command.Append(computer.Trim());

command.Append("','");

command.Append(role.Trim());

command.Append("','");

command.Append(file);

command.Append("')");

db.ExecuteCommand(command.ToString());

//db.ExecuteCommand("INSERT INTO wp.dbo.DivineRoles VALUES('" + computer + @"','" + role + @"','" + curFile +

// @"')");

}

}

}

}

FileList.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Data.Linq;

using System.Drawing;

using System.IO;

using System.Linq;

using System.Data.Linq.Mapping;

using System.Net;

using System.Net.Sockets;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using NetListSample.PortTest;

namespace NetListSample

{

public partial class FilesList : Form

{

public delegate void MyButtonClickedHandler(DivineTasks tasks);

public event MyButtonClickedHandler MyButtonClicked;

DivineTasks divineTasks = new DivineTasks();

DataContext db =

new DataContext(@"Data Source=ПОЛЬЗОВАТЕЛЬ-ПК\Curs;Initial Catalog=wp;Integrated Security=True");

public FilesList(List<string> fileList)

{

InitializeComponent();

//Find All Computers in local network

var a = PortTest.ComputersInLocalNetwork.GetServerList(ComputersInLocalNetwork.SV_101_TYPES.SV_TYPE_ALL);

List<IPHostEntry> ipList = new List<IPHostEntry>();

foreach (var comp in a)

{

ipList.Add(Dns.GetHostByName(comp));

listBox2.Items.Add(Dns.GetHostByName(comp).AddressList[0]);

//Add computer IP

ivineTasks.AddComp(Dns.GetHostByName(comp).AddressList[0].ToString());

}

foreach (var file in fileList)

{

listBox1.Items.Add(Path.GetFileName(file));

divineTasks.AddFile(file);

}

var workRoles = db.GetTable<workRoles>();

IQueryable<workRoles> workRolesList =

from workrole in workRoles

select workrole;

foreach (var role in workRolesList)

{

listBox3.Items.Add(role.WorkType);

divineTasks.AddRole(role.WorkType.ToString());

}

//write transaction in db

divineTasks.TransactDb();

}

private void FilesList_Load(object sender, EventArgs e)

{

}

private void button1_Click(object sender, EventArgs e)

{

if (MyButtonClicked != null)

{

MyButtonClicked(divineTasks);

}

string fullname = @"D:\\ReverseElement.html";

string ip = "127.0.0.1";

}

}

//not used now

public class FileList

{

private static List<string> _filesList = new List<string>();

public static void Add(string item)

{

_filesList.Add(item);

}

public static List<string> Get()

{

return _filesList;

}

}

}

Form1.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Data.Linq;

using System.Drawing;

using System.Linq;

using System.Net;

using System.Net.Sockets;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using NetListSample.PortTest;

using System.IO;

using System.Net;

using System.Threading;

using System.Net.Sockets;

using Microsoft.VisualBasic;

namespace NetListSample

{

public partial class btnPlanned : Form

{

public string fname;

public string fullname;

//public string fileExtension;

public TcpListener listener1 = new TcpListener(IPAddress.Any, 27020);

public TcpListener listener2 = new TcpListener(IPAddress.Any, 27021);

private System.Threading.Thread serverThread;

//private System.Threading.Thread reciveTimeThread;

public string data1;

public btnPlanned()

{

Load += Form1_Load;

this.InitializeComponent();

System.Threading.Thread messegeThread = new System.Threading.Thread(messege);

System.Threading.Thread reciveTimeThread = new System.Threading.Thread(reciveTime);

reciveTimeThread.IsBackground = true;

reciveTimeThread.Start();

messegeThread.IsBackground = true;

messegeThread.Start();

}

private void button1_Click(System.Object sender, System.EventArgs e)

{

//Проверка размера файла, если < 45 мб, то все ок

OpenFileDialog OFD = new OpenFileDialog { Title = "Выберите файл" };

if (OFD.ShowDialog() == System.Windows.Forms.DialogResult.OK)

{

System.IO.FileInfo file = new System.IO.FileInfo(OFD.FileName);

if (file.Length > 50000000)

{

MessageBox.Show("Размер файла слишком велик!");

}

else

{

fullname = OFD.FileName;

//Путь к отправляемому файлу

var a = PortTest.ComputersInLocalNetwork.GetServerList(ComputersInLocalNetwork.SV_101_TYPES.SV_TYPE_ALL);

List<IPHostEntry> ipList = new List<IPHostEntry>();

foreach (var comp in a)

{

ipList.Add(Dns.GetHostByName(comp));

listBox1.Items.Add(Dns.GetHostByName(comp).AddressList[0]);

}

var dirList = Directory.GetFiles(@"C:\webbrowsersample");

client();

/*string sHostName = Dns.GetHostName();

IPHostEntry ipHost = Dns.GetHostByName(sHostName);*/

//Запуск процедуры отправки файла

}

}

}

public void client()

{

//Вырезаем из полного пути к файлу только его имя и расширение

string Splitingres = null;

string[] str1 = null;

str1 = fullname.Split('\\');

//Splitingres = str1.Length;

fname = str1[1];

// Передаем имя файла в переменную fname

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

byte[] bytes = new byte[1025];

//ну создаем сокет, байты, получаем ip из текствокса

System.Net.IPAddress ip = System.Net.IPAddress.Parse(textBox1.Text);

IPEndPoint remoteEP = new IPEndPoint(ip, 27015);

//Получаем конечную точку ip/port

send.Connect(remoteEP);

//конектимся

byte[] message = Encoding.UTF8.GetBytes(fname);

//Преводим в байты короткое имя файла

int bytesSent = send.Send(message);

// Посылаем его

TcpClient client = new TcpClient(ip.ToString(), 27020);

//Создаем ТСР клиент на другом порту

NetworkStream Stream = client.GetStream();

BinaryWriter writer = new BinaryWriter(Stream);

byte[] fileData = new Byte[1024];

fileData = File.ReadAllBytes(fullname);

//Ну там выше все понятно,

//тут читаем все байты из отправляемого файла и помещаем в переменную fileData

writer.Write(fileData.Length);

writer.Write(fileData);

// Пишем в соединение BinaryWriter ом все байты.

writer.Close();

send.Shutdown(SocketShutdown.Both);

send.Close();

}

private void messege()

{

// Тут мы все слухаем, пока не придет имя файла

byte[] bytes = new Byte[1025];

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

IPEndPoint remoteEP = new IPEndPoint(IPAddress.Any, 27015);

listener.Bind(remoteEP);

listener.Listen(10);

while (true)

{

Socket handler = listener.Accept();

data1 = null;

while (true)

{

//Получаем имя файла в data1

bytes = new byte[1025];

int bytesRec = handler.Receive(bytes);

data1 += Encoding.UTF8.GetString(bytes, 0, bytesRec);

listener1 = new TcpListener(IPAddress.Any,27020);

listener1.Start();

//Создаем и запускаем TcpListener для принятия файла

//Выводим сообщение в метку, напрямую нельзя,

if (label1.InvokeRequired)

{

//Т.к. мы в другом потоке, поэтому обращаемся к ней через Invoke

//listener1.Stop()

label1.Invoke(new System.Threading.ThreadStart(lab));

}

else

{

lab();

}

break; // TODO: might not be correct. Was : Exit While

}

handler.Shutdown(SocketShutdown.Both);

handler.Close();

}

}

private void reciveTime()

{

// Тут мы все слухаем, пока не придет имя файла

byte[] bytes = new Byte[1025];

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

IPEndPoint remoteEP = new IPEndPoint(IPAddress.Any, 27016);

listener.Bind(remoteEP);

listener.Listen(10);

while (true)

{

Socket handler = listener.Accept();

data1 = null;

while (true)

{

//Получаем имя файла в data1

bytes = new byte[1025];

int bytesRec = handler.Receive(bytes);

data1 += Encoding.UTF8.GetString(bytes, 0, bytesRec);

SetTime((Convert.ToInt32(data1)));

listener2 = new TcpListener(IPAddress.Any, 27021);

listener2.Start();

//Создаем и запускаем TcpListener для принятия файла

//Выводим сообщение в метку, напрямую нельзя,

if (label5.InvokeRequired)

{

//Т.к. мы в другом потоке, поэтому обращаемся к ней через Invoke

//listener1.Stop()

label5.Invoke(new System.Threading.ThreadStart(lab));

}

else

{

lab();

}

break; // TODO: might not be correct. Was : Exit While

}

handler.Shutdown(SocketShutdown.Both);

handler.Close();

}

}

public void SetTime(int time)

{

Random r = new Random();

DataContext db =

new DataContext(@"Data Source=ПОЛЬЗОВАТЕЛЬ-ПК\Curs;Initial Catalog=wp;Integrated Security=True");

db.ExecuteCommand("INSERT INTO dbo.TimeManagment VALUES(1,'" + DateTime.Now + "',200," + time + "," +

r.Next(200, 700) + ")");

db.Connection.Close();

listener2.Stop();

}

public void lab()

{

label1.Text = "Бери пака дают!";

}

private void Form1_Load(System.Object sender, System.EventArgs e)

{

}

private void button2_Click(System.Object sender, System.EventArgs e)

{

//По нажатию кнопки получаем имя файла из переменной data1

//Разрезаем его на имя и расширение

string[] spl = null;

spl = data1.Split('.');

//Dim SFD As New SaveFileDialog With {.Filter = "Файлы (*." & spl(1) & ")|*." & spl(1) & "", .Title = "Куда сохранить файл?"}

SaveFileDialog SFD = new SaveFileDialog {

Filter = "Файлы (*." + spl[0] + ")|*." + spl[1] + "",

Title = "Куда сохранить файл?"

};

//Ну это сейффайлдиалог

SFD.FileName = spl[0];

//Имя файла

if (SFD.ShowDialog() == System.Windows.Forms.DialogResult.OK) {

TcpClient client = listener1.AcceptTcpClient();

NetworkStream Stream = client.GetStream();

BinaryReader reader = new BinaryReader(Stream);

// Там все то же только тут BinaryReader для чтения байтов из потока

int fileLength = reader.ReadInt32();

byte[] fileData = new Byte[1024];

fileData = reader.ReadBytes(fileLength);

File.WriteAllBytes(SFD.FileName, fileData);

//Пишем байт в файл

listener1.Stop();

// Останавливаем листнер

data1 = null;

label1.Text = "Передача файла завершена";

/* handle exeption with new socket on old port */

listener1.Stop();

}

}

private void button3_Click(object sender, EventArgs e)

{

AddUser addUserForm=new AddUser();

addUserForm.Show();

}

DivineTasks taskList = new DivineTasks();

void flistForm_MyButtonClicked(DivineTasks tasks)

{

taskList = tasks;

}

private void button4_Click(object sender, EventArgs e)

{

//uncomment for release

//FolderBrowserDialog fdDialog = new FolderBrowserDialog();

//fdDialog.ShowDialog();

//string dirPath = fdDialog.SelectedPath;

string dirPath = @"C:\Users\Пользователь\Documents\Visual Studio 2013\Projects\BzCurs\BzCurs";

textBox2.Text = dirPath;

//catch error if no directory select in dialog

//debug.Uncomment for release

//DirectoryInfo dr = new DirectoryInfo(dirPath);

//DirectoryInfo dr = new DirectoryInfo(@"C:\Users\Пользователь\Documents\Visual Studio 2013\Projects\BzCurs\BzCurs");

List<string> fileList = new List<string>();

foreach (var file in Directory.GetFiles(dirPath,ProjectTypes.FileExtension.Extension,SearchOption.AllDirectories))

{

fileList.Add(file);

}

//var soloma = dr.GetFiles();

FilesList flistForm = new FilesList(fileList);

flistForm.MyButtonClicked += new FilesList.MyButtonClickedHandler(flistForm_MyButtonClicked);

flistForm.Show();

}

private void button5_Click(object sender, EventArgs e)

{

ProjectTypes ptTypes = new ProjectTypes();

ptTypes.Show();

}

public void SaveFile(string filename)

{

//Имя файла

string FilePath = @"D:\\kolos\"+filename;

TcpClient client = listener1.AcceptTcpClient();

NetworkStream Stream = client.GetStream();

BinaryReader reader = new BinaryReader(Stream);

// Там все то же только тут BinaryReader для чтения байтов из потока

int fileLength = reader.ReadInt32();

byte[] fileData = new Byte[1024];

fileData = reader.ReadBytes(fileLength);

File.WriteAllBytes(FilePath, fileData);

//Пишем байт в файл

//listener1.Stop();

// Останавливаем листнер

data1 = null;

label1.Text = "Передача файла завершена";

/* handle exeption with new socket on old port */

//listener1.Stop();

}

private void button9_Click(object sender, EventArgs e)

{

foreach (var task in taskList)

{

listBox1.Items.Add(task);

fullname = (string)task;

//string[] spl = null;

//spl = fullname.Split('.');

client();

SaveFile(Path.GetFileName(fullname));

}

}

private void button8_Click(object sender, EventArgs e)

{

CurProjects cp = new CurProjects();

cp.Show();

}

}

}

ProjectEnumProvider.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace NetListSample

{

class ProjectsEnumProvider

{

private int _id;

private string _title;

//Pattern - filetype;

private string _fileType;

public Dictionary<string, string> dictionary = new Dictionary<string, string>();

public void InitDict()

{

dictionary.Add("C#","*.cs");

dictionary.Add("C++", "*.cpp");

dictionary.Add("VB.NET", "*.vb");

dictionary.Add("Haskell", "*.hx");

dictionary.Add("Erlang", "*.erl");

dictionary.Add("Prolog", "*.pro");

}

/*public enum hyesos

{

cs,cpp,vb,hx,erl,pro

}*/

public string FileType

{

get { return _fileType; }

set { _fileType = value; }

}

}

}

ProjectTypes.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Data.Linq;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using NetListSample;

namespace NetListSample

{

public partial class ProjectTypes : Form

{

public static class FileExtension

{

/* Warning, may be errors if Extension ="" */

public static string Extension="";

}

public ProjectTypes()

{

InitializeComponent();

InitList();

}

public void InitList()

{

DataContext db =

new DataContext(@"Data Source=ПОЛЬЗОВАТЕЛЬ-ПК\Curs;Initial Catalog=wp;Integrated Security=True");

Table<projectTypes> project = db.GetTable<projectTypes>();

IQueryable<projectTypes> ptyQueryable =

from projectTypese in project

select projectTypese;

foreach (var curLanguage in ptyQueryable)

{

comboBox1.Items.Add(curLanguage.ProjectType);

}

}

private void button1_Click(object sender, EventArgs e)

{

ProjectsEnumProvider pr = new ProjectsEnumProvider();

//Init dictionary with pairs - project type -> fileType (rashirenie). Эти ебаные комментарии, которые я сам потомне пойму

pr.InitDict();

pr.FileType = comboBox1.SelectedItem.ToString();

FileExtension.Extension = pr.dictionary[pr.FileType];

}

}

}

CurProjects.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Data.Linq;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace NetListSample

{

public partial class CurProjects : Form

{

public CurProjects()

{

InitializeComponent();

}

private void CurProjects_Load(object sender, EventArgs e)

{

DataContext db =

new DataContext(@"Data Source=ПОЛЬЗОВАТЕЛЬ-ПК\Curs;Initial Catalog=wp;Integrated Security=True");

var projects = db.GetTable<Projects>();

IQueryable<Projects> projectsList =

from project in projects

select project;

foreach (var project in projectsList)

{

listBox1.Items.Add(project.ID);

listBox2.Items.Add(project.CountOfFiles);

if (project.Completed == 1)

{

listBox3.Items.Add("Да");

}

else

{

{

listBox3.Items.Add("Нет");

}

}

listBox4.Items.Add(project.DateCompleted);

}

}

}

}

Client.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.IO;

using System.Linq;

using System.Net;

using System.Net.Sockets;

using System.Text;

using System.Windows.Forms;

namespace NetListClient

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

}

private void button2_Click(object sender, EventArgs e)

{

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

byte[] bytes = new byte[1025];

//ну создаем сокет, байты, получаем ip из текствокса

System.Net.IPAddress ip = System.Net.IPAddress.Parse(textBox2.Text);

IPEndPoint remoteEP = new IPEndPoint(ip, 27016);

//Получаем конечную точку ip/port

send.Connect(remoteEP);

//конектимся

byte[] message = Encoding.UTF8.GetBytes(textBox1.Text);

//Преводим в байты короткое имя файла

int bytesSent = send.Send(message);

// Посылаем его

TcpClient client = new TcpClient(ip.ToString(), 27021);

//Создаем ТСР клиент на другом порту

NetworkStream Stream = client.GetStream();

BinaryWriter writer = new BinaryWriter(Stream);

byte[] fileData = new Byte[1024];

//fileData = File.ReadAllBytes(fullname);

//Ну там выше все понятно,

//тут читаем все байты из отправляемого файла и помещаем в переменную fileData

writer.Write(textBox1.Text.Length);

writer.Write(textBox1.Text);

// Пишем в соединение BinaryWriter ом все байты.

writer.Close();

send.Shutdown(SocketShutdown.Both);

send.Close();

}

private void button3_Click(object sender, EventArgs e)

{

}

}

}

Размещено на Allbest.ru


Подобные документы

  • Создание автоматизированного каталога режущего инструмента предприятия с использованием современного программного обеспечения: СУБДFireBird 2.5 и среда разработки приложений C++ Builder 6. Разработка программного модуля для работы и автоматизации.

    курсовая работа [3,2 M], добавлен 14.12.2012

  • Выбор инструментальной среды разработки программного обеспечения системы. Алгоритм создания теста и ввода его исходных данных. Анализ экономической эффективности применения программного обеспечения "Тестирования знаний обучающихся программированию".

    дипломная работа [3,2 M], добавлен 11.09.2014

  • Технологический процесс в организации и его компоненты. Организационная структура и роли в технологических процессах. Пятиуровневая модель зрелости технологического процесса разработки программного обеспечения. Внутренняя структура уровней зрелости.

    курсовая работа [184,1 K], добавлен 29.06.2010

  • Анализ современного рынка программных продуктов. Понятие виртуального тура и возможности его применения. Изучение программного обеспечения и технологии создания виртуальных туров. Панорамный снимок и виртуальная брошюра. Настройка параметров панорамы.

    курсовая работа [3,5 M], добавлен 22.03.2016

  • Использование моделирования в программной инженерии в процессе разработки программного обеспечения. Основные этапы процесса разработки программного обеспечения, их характеристика. Моделирование процессов, их определение фазами и видами деятельности.

    реферат [2,2 M], добавлен 25.12.2017

  • Выбор базовых программных средств для разработки оригинального программного обеспечения. Компоненты программно-методического комплекса проектирования токарных операций. Программное обеспечение для организации интерфейса программно-методического комплекса.

    дипломная работа [2,8 M], добавлен 14.05.2010

  • Жизненный цикл программного продукта. Современные среды разработки приложений. Защита информации в базах данных. Особенности разработки приложения с помощью среды Delphi 7. Проверка программного модуля на предмет соответствия стандартам кодирования.

    отчет по практике [589,0 K], добавлен 18.05.2017

  • Создание баз хозяйственных договоров, банков и членов временных трудовых коллективов в среде разработки Delphi. Логическая структура линейного двусвязного списка. Способ упорядочения и алгоритм сортировки списка. Руководство пользования программой.

    курсовая работа [749,4 K], добавлен 14.02.2016

  • Понятие технологии разработки программы. Основа проектирования программного обеспечения. Модели жизненного цикла, возникшие исторически в ходе развития теории проектирования программного обеспечения. Спиральная (spiral), каскадная и итерационная модели.

    презентация [1,0 M], добавлен 11.05.2015

  • Оценка финансовой, стратегической ценности и уровня рисков проекта. Классификация проектов: "свой" заказчик, продукт под заказ, тиражируемый продукт, аутсорсинг. Организация процесса разработки программного обеспечения, методологии его проектирования.

    презентация [82,8 K], добавлен 07.12.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.