Не получается передать файл через tcp C#
хочу сделать клиент и сервер, клиент передает файл по tcp а сервер его сохраняет и возвращает значение. когда клиент и сервер на локалке все работает, но как только я перемещаю сервер на другую машину с открытым tcp портом. ничего не работает вот код клиента:
TcpClient client = new TcpClient();
NetworkStream netStream;
try
{
client.Connect("127.0.0.1", 7777);
}
catch (Exception e)
{
Console.WriteLine("Exception: {0}", e);
}
int bufferSize = 1024;
netStream = client.GetStream();
byte[] data = File.ReadAllBytes("1.txt");
byte[] dataLength = BitConverter.GetBytes(data.Length);
byte[] package = new byte[4 + data.Length];
dataLength.CopyTo(package, 0);
data.CopyTo(package, 4);
int bytesSent = 0;
int bytesLeft = package.Length;
while (bytesLeft > 0)
{
int nextPacketSize = (bytesLeft > bufferSize) ? bufferSize : bytesLeft;
netStream.Write(package, bytesSent, nextPacketSize);
bytesSent += nextPacketSize;
bytesLeft -= nextPacketSize;
}
netStream.Close();
client.Close();
код сервера:
IPAddress ipAddress = IPAddress.Parse("127.0.0.1");
TcpListener listen = new TcpListener(ipAddress, 7777);
TcpClient client;
int bufferSize = 1024;
NetworkStream netStream;
int bytesRead = 0;
int allBytesRead = 0;
listen.Start();
client = listen.AcceptTcpClient();
netStream = client.GetStream();
byte[] length = new byte[4];
bytesRead = netStream.Read(length, 0, 4);
int dataLength = BitConverter.ToInt32(length, 0);
int bytesLeft = dataLength;
byte[] data = new byte[dataLength];
while (bytesLeft > 0)
{
int nextPacketSize = (bytesLeft > bufferSize) ? bufferSize : bytesLeft;
bytesRead = netStream.Read(data, allBytesRead, nextPacketSize);
allBytesRead += bytesRead;
bytesLeft -= bytesRead;
}
File.WriteAllBytes("2.txt", data);
netStream.Close();
client.Close();
Console.WriteLine("Запрос завершен...");
Console.Read();
заранее спасибо за помощь