Задача следующая: передавать данные с сервера на клиент, с одного компьютера на другой, по протоколу TCP.
Нужно организовать передачу файлов и данных по сети
и соединение обрывается при попытке подключить клиента "Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение"
при двойном нажатии на папку, она должна открываться, а файлы открываться, код для этого есть но будет ли работать по сети не уверена
public partial class Form1 : Form
{
string CorS;
public Form1()
{
InitializeComponent();
}
private TcpListener Server;
private TcpClient remoteClient;
private TcpClient localClient;
private Thread thClient;
private Thread thServer;
private void btnServer_Click(object sender, EventArgs e)
{
Server = new TcpListener(IPAddress.Any, 6785);
Server.Start();
thServer = new Thread(() =>
{
remoteClient = Server.AcceptTcpClient();
byte[] buffer = new byte[1024];
while (remoteClient.Connected)
{
Array.Clear(buffer, 0, buffer.Length);
remoteClient.GetStream().Read(buffer, 0, 1024);
string strData = Encoding.Default.GetString(buffer);
}
});
thServer.Start();
CorS = "s";
ClientServer();
}
private void btnConnect_Click(object sender, EventArgs e)
{
localClient = new TcpClient();
System.Net.IPAddress ip = System.Net.Dns.GetHostByName(System.Net.Dns.GetHostName()).AddressList[0];
localClient.Connect(ip, 8000);// выдает ошибку "подключение не удалось"
thClient = new Thread(() =>
{
while (localClient.Connected)
{
byte[] buffer = new byte[1024];
while (localClient.Connected)
{
Array.Clear(buffer, 0, buffer.Length);
localClient.GetStream().Read(buffer, 0, 1024);
string strData = Encoding.Default.GetString(buffer);
}
}
});
thClient.Start();
CorS = "c";
ClientServer();
}
#region //Клиент сервер
public void ClientServer()
{
if (CorS == "c")
{
//Если подключен клиент то выводить файлы и папки с компьютера-сервера
}
//else if (CorS == "s")
//{
//}
}
#endregion
#region //ВЫВОД ФАЙЛОВ
public static string FPath;
public static string backPath;
List<string> ls = new List<string>();
public static string GetLocDir()
{
String[] LogicalDrives = Environment.GetLogicalDrives();
string dir = String.Join("/", LogicalDrives);
return dir;
}
public static string GetDirectories()
{
string[] dir = Directory.GetDirectories(FPath);
string poddir = String.Join("/", dir);
return poddir;
}
public static string GetFiles()
{
string[] files = Directory.GetFiles(FPath);
string file = String.Join("/", files);
return file;
}
private void btnDownload_Click(object sender, EventArgs e)
{
//загрузка выбранного файла
}
}
public void listView1_ItemActivate(object sender, EventArgs e)
{
// if (listView1.SelectedItems.Count == 0)
// return;
// ListViewItem item = listView1.SelectedItems[0];
// if (item.ImageIndex == 1)
// {
// string it = item.Text;
// string title = "";
// foreach (string s in ls)
// {
// try
// {
// if (s.Substring(s.Length - it.Length, it.Length) == it)
// {
// FPath = s;
// title = s;
// }
// }
// catch { }
// }
// try
// {
// string[] dirs = Directory.GetDirectories(FPath);
// this.Text = title;
// GetFiles();
// }
// catch (Exception ex) { MessageBox.Show(ex.Message); }
// }
// else if (item.ImageIndex == 0)
// {
// string start = this.Text + "" + item.Text;
// System.Diagnostics.Process.Start(start);
// }
}