client update

This commit is contained in:
Pat 2019-01-21 20:06:33 +01:00
parent 0dbf90d01e
commit 6dd0010f8f
74 changed files with 104057 additions and 100 deletions

BIN
packages/JSON.1.0.1/.signature.p7s vendored Normal file

Binary file not shown.

BIN
packages/JSON.1.0.1/JSON.1.0.1.nupkg vendored Normal file

Binary file not shown.

13
packages/JSON.1.0.1/LICENSE vendored Normal file
View File

@ -0,0 +1,13 @@
JSON Parser
Written by Daniel Crenna
(http://danielcrenna.com)
This work is public domain.
"The person who associated a work with this document has
dedicated the work to the Commons by waiving all of his
or her rights to the work worldwide under copyright law
and all related or neighboring legal rights he or she
had in the work, to the extent allowable by law."
For more information, please visit:
http://creativecommons.org/publicdomain/zero/1.0/

Binary file not shown.

Binary file not shown.

BIN
packages/JSON.1.0.1/lib/net40/Json.dll vendored Normal file

Binary file not shown.

BIN
packages/JSON.1.0.1/lib/net40/Json.pdb vendored Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,20 @@
The MIT License (MIT)
Copyright (c) 2007 James Newton-King
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,239 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using Newtonsoft.Json;
namespace sikFtpClient.Connection
{
class Client : Connection
{
public Client(string server, int port)
{
this.server = server;
this.port = port;
}
public bool Connect()
{
try
{
client = new TcpClient(server, port);
stream = client.GetStream();
//clientsocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//clientsocket.Connect(server, port);
return true;
}
catch
{
return false;
}
}
public void SendFile(string file, string destPath = @"C:\Users\Lenovo\Desktop\")
{
int bufferSize = 1024;
byte[] filebuff = new byte[bufferSize];
string fileName = destPath + file;
//send to TcpServer request to send file
//clientsocket.Send(textToBytes("RECEIVEFILE"));
stream.Write(textToBytes("RECEIVEFILE"), 0, 11); //jak to ładniej zapisać?
try
{
FileStream streamFile = new FileStream(fileName, FileMode.Open, FileAccess.Read);
BinaryReader binReader = new BinaryReader(streamFile);
//get file size
long filesize = streamFile.Length;
//send file name to TcpServer
//clientsocket.Send(textToBytes(file));
stream.Write(textToBytes(file), 0, file.Length);
//send file size to TcpServer
// sendData(stream, BitConverter.GetBytes(filesize));
// clientsocket.Send(BitConverter.GetBytes(filesize));
//if file doesn't exist
if (file == null)
{
Console.WriteLine("Błąd przy otwarciu pliku.");
}
//if file is empty
if (filesize == 0)
{
Console.WriteLine("Rozmiar pliku: 0");
return;
}
//totallength?
int totalLength = Convert.ToInt32(filesize);
long numberOfPackets = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(streamFile.Length) / bufferSize));
int currentPacketLength;
Console.WriteLine("Liczba pakietów: " + numberOfPackets);
for (int i = 0; i < numberOfPackets; i++)
{
if (filesize > bufferSize)
{
currentPacketLength = bufferSize;
totalLength = totalLength - currentPacketLength;
}
else
currentPacketLength = totalLength;
filebuff = new byte[currentPacketLength];
//streamFile.Read(filebuff, 0, currentPacketLength);
binReader.Read(filebuff, 0, currentPacketLength);
stream.Write(filebuff, 0, filebuff.Length);
// clientsocket.Send(filebuff);
Console.WriteLine("Wysłano " + totalLength + "bajtów...");
}
streamFile.Close();
}
catch
{
Console.WriteLine("Nie ma takiego pliku...");
}
}
public List<DiscElement> ListFiles()
{
List<DiscElement> plikiPliki = new List<DiscElement>();
byte[] recBuffer = new byte[1024];
//byte[] receivedFileName;
while (true)
{
// clientsocket.Receive(recBuffer, recBuffer.Length, 0);
stream.Read(recBuffer, 0, recBuffer.Length);
DiscElement file = new DiscElement();
dynamic json = JsonConvert.DeserializeObject(ASCIIEncoding.ASCII.GetString(recBuffer));
if (json.Type == "End")
{
break;
}
DiscElement pliczek = new DiscElement()
{
Type = json.Type,
Filename = json.Filename,
Filepath = json.Filepath,
Filesize = json.Filesize,
Fileext = json.Fileext
};
plikiPliki.Add(pliczek);
}
return plikiPliki;
}
//public void DownloadFile(string fileName)
//{
// byte[] recBuffer = new byte[1024];
// byte[] fileNameBytes;
// fileNameBytes = Encoding.UTF8.GetBytes(fileName);
// // clientSocket.Send(fileNameBytes);
// stream.Write(fileNameBytes, 0, fileNameBytes.Length);
// byte[] fileSizeBytes = new byte[4];
// // clientSocket.Receive(fileSizeBytes, fileSizeBytes.Length, 0);
// stream.Read(fileSizeBytes, 0, fileSizeBytes.Length);
// int bytes = BitConverter.ToInt32(fileSizeBytes, 0);
// Console.WriteLine("Plik ma długość: " + bytes);
// long received = 0;
// long receivedAll = 0;
// byte[] fileData = new byte[1024];
// Console.WriteLine("Pobieram plik...");
// while (receivedAll < bytes)
// {
// // received = clientSocket.Receive(fileData, fileData.Length, 0);\
// received = stream.Read(fileData, 0, fileData.Length);
// if (received < 0)
// {
// Console.WriteLine("Błąd przy pobieraniu pliku!");
// break;
// }
// BinaryWriter bWrite = new BinaryWriter(File.Open("C:\\Users\\Roman\\Desktop\\" + fileName, FileMode.Append)); //nazwa podana przez użytkownika!!!! zmienic
// bWrite.Write(fileData);
// bWrite.Close();
// receivedAll += received;
// // Console.WriteLine(ASCIIEncoding.ASCII.GetString(fileData));
// }
//}
public void Disconnect()
{
stream.Close();
client.Close();
// clientsocket.Close();
}
/* public void SendFile(string file, string destPath = "C:\\Users\\Lenovo\\Desktop\\")
{
FileStream streamFile = new FileStream(file, FileMode.Open, FileAccess.Read);
while(true)
{
byte[] buff = new byte[1024];
int read = 0;
while(read < buff.Length)
{
int bytesRead = streamFile.Read(buff, read, buff.Length - read);
if(bytesRead == 0)
{
break;
}
if(bytesRead < 1024)
{
byte[] temp = new byte[bytesRead];
for (int i = 0; i < bytesRead; i++)
temp[i] = buff[i];
buff = temp;
}
read += bytesRead;
}
if (read != 0)
{
sendData(stream, buff);
}
if (read != buff.Length)
{
sendData(stream, System.Text.Encoding.ASCII.GetBytes("</sendFile>".ToUpper()));
return;
}
}
}*/
}
}

View File

@ -12,7 +12,7 @@ namespace sikFtpClient.Connection
public int port { get; set; } public int port { get; set; }
public string server { get; set; } public string server { get; set; }
public TcpClient client { get; set; } public TcpClient client { get; set; }
public static NetworkStream stream { get; set; } public NetworkStream stream { get; set; }
@ -21,6 +21,7 @@ namespace sikFtpClient.Connection
Byte[] data = new byte[1024]; Byte[] data = new byte[1024];
string responseData = string.Empty; string responseData = string.Empty;
int bytes = stream.Read(data, 0, data.Length); int bytes = stream.Read(data, 0, data.Length);
//read TcpServer response
responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes); responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
Console.WriteLine("Received: {0}", responseData); Console.WriteLine("Received: {0}", responseData);
@ -29,9 +30,14 @@ namespace sikFtpClient.Connection
protected void sendData(NetworkStream stream, Byte[] data) protected void sendData(NetworkStream stream, Byte[] data)
{ {
//send message to TcpServer
stream.Write(data, 0, data.Length); stream.Write(data, 0, data.Length);
} }
protected static Byte[] textToBytes(string text)
{
return System.Text.Encoding.ASCII.GetBytes(text);
}

View File

@ -0,0 +1,30 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace sikFtpClient.Connection
{
class DiscElement
{
public string Type;
public string Filename;
public string Filepath;
public int Filesize;
public string Fileext;
public DiscElement()
{
}
public DiscElement(string Type, string Filename, string Filepath, int Filesize, string Fileext)
{
this.Type = Type;
this.Filename = Filename;
this.Filepath = Filepath;
this.Filesize = Filesize;
this.Fileext = Fileext;
}
}
}

View File

@ -1,89 +0,0 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
namespace sikFtpClient.Connection
{
class TcpClient : Connection
{
public TcpClient(string server, int port)
{
this.server = server;
this.port = port;
}
public void Connect()
{
try
{
client = new TcpClient(server, port);
// Stream stream = client.GetStream();
// stream = client.GetStream();
}
catch (ArgumentNullException e)
{
Console.WriteLine("ArgumentNullException: {0}", e);
}
catch (SocketException e)
{
Console.WriteLine("SocketException: {0}", e);
}
}
public void SendFile(string file, string destPath = "C:\\Users\\Lenovo\\Desktop\\")
{
System.IO.FileStream streamFile = new System.IO.FileStream(file, System.IO.FileMode.Open, System.IO.FileAccess.Read);
while(true)
{
byte[] buff = new byte[1024];
int read = 0;
while(read < buff.Length)
{
int bytesRead = streamFile.Read(buff, read, buff.Length - read);
if(bytesRead == 0)
{
break;
}
if(bytesRead < 1024)
{
byte[] temp = new byte[bytesRead];
for (int i = 0; i < bytesRead; i++)
temp[i] = buff[i];
buff = temp;
}
read += bytesRead;
}
if (read != 0)
{
sendData(stream, buff);
}
if (read != buff.Length)
{
sendData(stream, System.Text.Encoding.ASCII.GetBytes("</sendFile>".ToUpper()));
return;
}
}
}
}
}

View File

@ -44,9 +44,5 @@ namespace sikFtpClient.ViewModel
{ {
ViewModel = new ConnectionViewModel(); ViewModel = new ConnectionViewModel();
} }
} }
} }

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -1 +1 @@
ad8267024f83ba27119b2f004b4489c516c5a1ef 972ceb53cb57a5a819156875f00e32fed1d734ff

View File

@ -48,3 +48,9 @@ C:\Users\Lenovo\Desktop\sikFtpClient\sikFtpClient\obj\Debug\sikFtpClient.csproj.
C:\Users\Lenovo\Desktop\sikFtpClient\sikFtpClient\obj\Debug\sikFtpClient.csproj.CoreCompileInputs.cache C:\Users\Lenovo\Desktop\sikFtpClient\sikFtpClient\obj\Debug\sikFtpClient.csproj.CoreCompileInputs.cache
C:\Users\Lenovo\Desktop\sikFtpClient\sikFtpClient\obj\Debug\sikFtpClient.exe C:\Users\Lenovo\Desktop\sikFtpClient\sikFtpClient\obj\Debug\sikFtpClient.exe
C:\Users\Lenovo\Desktop\sikFtpClient\sikFtpClient\obj\Debug\sikFtpClient.pdb C:\Users\Lenovo\Desktop\sikFtpClient\sikFtpClient\obj\Debug\sikFtpClient.pdb
C:\Users\Lenovo\Desktop\sikFtpClient\sikFtpClient\bin\Debug\Json.dll
C:\Users\Lenovo\Desktop\sikFtpClient\sikFtpClient\bin\Debug\Newtonsoft.Json.dll
C:\Users\Lenovo\Desktop\sikFtpClient\sikFtpClient\bin\Debug\Json.pdb
C:\Users\Lenovo\Desktop\sikFtpClient\sikFtpClient\bin\Debug\Newtonsoft.Json.pdb
C:\Users\Lenovo\Desktop\sikFtpClient\sikFtpClient\bin\Debug\Newtonsoft.Json.xml
C:\Users\Lenovo\Desktop\sikFtpClient\sikFtpClient\obj\Debug\sikFtpClient.csproj.CopyComplete

View File

@ -12,8 +12,8 @@ DEBUG;TRACE
C:\Users\Lenovo\Desktop\sikFtpClient\sikFtpClient\App.xaml C:\Users\Lenovo\Desktop\sikFtpClient\sikFtpClient\App.xaml
5619787545 5619787545
21-558927424 221839107845
131569487696 15-175103002
MainWindow.xaml;View\ConnectionView.xaml;View\DownloadView.xaml;View\LocalDiscElementView.xaml;View\UploadView.xaml; MainWindow.xaml;View\ConnectionView.xaml;View\DownloadView.xaml;View\LocalDiscElementView.xaml;View\UploadView.xaml;
False False

View File

@ -12,8 +12,8 @@ DEBUG;TRACE
C:\Users\Lenovo\Desktop\sikFtpClient\sikFtpClient\App.xaml C:\Users\Lenovo\Desktop\sikFtpClient\sikFtpClient\App.xaml
5619787545 5619787545
254775616 26-1892156411
131569487696 15-175103002
MainWindow.xaml;View\ConnectionView.xaml;View\DownloadView.xaml;View\LocalDiscElementView.xaml;View\UploadView.xaml; MainWindow.xaml;View\ConnectionView.xaml;View\DownloadView.xaml;View\LocalDiscElementView.xaml;View\UploadView.xaml;
True True

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="JSON" version="1.0.1" targetFramework="net461" />
<package id="Newtonsoft.Json" version="12.0.1" targetFramework="net461" />
</packages>

View File

@ -35,6 +35,12 @@
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Json, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c6752e45808247c2, processorArchitecture=MSIL">
<HintPath>..\packages\JSON.1.0.1\lib\net40\Json.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Data" /> <Reference Include="System.Data" />
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
@ -56,7 +62,8 @@
<SubType>Designer</SubType> <SubType>Designer</SubType>
</ApplicationDefinition> </ApplicationDefinition>
<Compile Include="Connection\Connection.cs" /> <Compile Include="Connection\Connection.cs" />
<Compile Include="Connection\TcpClient.cs" /> <Compile Include="Connection\Client.cs" />
<Compile Include="Connection\DiscElement.cs" />
<Compile Include="Model\DiscElementModel.cs" /> <Compile Include="Model\DiscElementModel.cs" />
<Compile Include="Model\LocalDirectoryModel.cs" /> <Compile Include="Model\LocalDirectoryModel.cs" />
<Compile Include="Model\LocalFileModel.cs" /> <Compile Include="Model\LocalFileModel.cs" />
@ -126,6 +133,7 @@
<Generator>ResXFileCodeGenerator</Generator> <Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput> <LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource> </EmbeddedResource>
<None Include="packages.config" />
<None Include="Properties\Settings.settings"> <None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator> <Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput> <LastGenOutput>Settings.Designer.cs</LastGenOutput>