Как изменить код сервера, чтобы он заработал? - C#
Формулировка задачи:
Сервер не пашет, что не так?
using System;
using System.IO;
using System.Net;
using System.Diagnostics;
using System.Net.Sockets;
using System.Text;
using System.Xml.Serialization;
public class UdpServer
{
[Serializable]
public class FileDetails
{
public string FILETYPE = "";
public long FILESIZE = 0;
}
private static FileDetails fileDet;
private static int localPort = 5002;
private static UdpClient receivingUdpClient = new UdpClient(localPort);
private static IPEndPoint RemoteIpEndPoint = null;
private static FileStream fs;
private static Byte[] receiveBytes = new Byte[0];
[STAThread]
static void Main(string[] args)
{
int recv;
byte[] data = new byte[1024];
IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 9050);
Socket SrvSock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
SrvSock.Bind(ipep);
Console.WriteLine("Ожидаем соединения с клиентом...");
IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
EndPoint Remote = (EndPoint)(sender);
recv = SrvSock.ReceiveFrom(data, ref Remote);
Console.Write("Сообщение получено от {0}: ", Remote.ToString());
Console.WriteLine(Encoding.UTF8.GetString(data, 0, recv));
string welcome = "Подключение к серверу выполнено";
data = Encoding.UTF8.GetBytes(welcome);
SrvSock.SendTo(data, data.Length, SocketFlags.None, Remote);
ReceiveFile();
}
public static void ReceiveFile()
{
try
{
while (true)
{
Console.WriteLine("---**Ожидание получения файла**---");
receiveBytes = receivingUdpClient.Receive(ref RemoteIpEndPoint);
Console.WriteLine("Файл получен");
fs = new FileStream("temp." + fileDet.FILETYPE, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
fs.Write(receiveBytes, 0, receiveBytes.Length);
Console.WriteLine("Файл сохранен");
Console.WriteLine("Открытие файла");
Process.Start(fs.Name);
}
}
catch (Exception eR)
{
Console.WriteLine(eR.ToString());
}
finally
{
fs.Close();
receivingUdpClient.Close();
Console.Read();
}
}
}Решение задачи: «Как изменить код сервера, чтобы он заработал?»
textual
Листинг программы
fs = new FileStream("temp." + fileDet.FILETYPE, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);