всякий раз, когда я пытаюсь получить IP-адрес сервера, который подключен к той же сети, что и я, я получаю сообщение об ошибке. поэтому я вынужден ввести IP вручную.
string number;
FileDialog fd;
byte[] filebyte;
private void Browse_Click(object sender, RoutedEventArgs e)
{
fd = new OpenFileDialog();
fd.DefaultExt = ".png";
string sent = "Sent";
Nullable<bool> result = fd.ShowDialog();
if (result == true)
{string filename = fd.FileName;
file.Text = filename;
FileInfo fi = new FileInfo(file.Text = fd.FileName);
number = fi.Name + "." + fi.Length;
database db = new database();
db.Insert(filename, sent);
Task.Run(() =>{
TcpClient clients = new TcpClient("localhost", 8888);
StreamWriter sw = new StreamWriter(clients.GetStream());
sw.WriteLine(number);
sw.Flush(); });
}
}
private void Share_Click(object sender, RoutedEventArgs e){
TcpClient client = new TcpClient("localhost", 8889);
Stream s = client.GetStream();
filebyte = File.ReadAllBytes(fd.FileName);
s.Write(filebyte, 0, filebyte.Length);
//client.Close();
MessageBox.Show("file transferred");
}
}
}
поэтому я попытался получить хост ipaddress и вставить его в приведенный выше код, где ip - localhost. но этот код не работает
string ip;
private void GetIP()
{
string strHostName = "";
strHostName = System.Net.Dns.GetHostName();
IPHostEntry ipEntry = System.Net.Dns.GetHostEntry(strHostName);
IPAddress[] addr = ipEntry.AddressList;
ip= addr[0].ToString();
}