Написан сервер на c#
class Program
{
static IPAddress remoteAddress; // хост для отправки данных
static int remotePort; // порт для отправки данных
static void Main(string[] args)
{
try
{
remotePort = int.Parse(ConfigurationManager.AppSettings.Get("remotePort"));
remoteAddress = IPAddress.Parse(ConfigurationManager.AppSettings.Get("remoteAddress"));
SendNumber();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
private static void SendNumber()
{
UdpClient sender = new UdpClient();
IPEndPoint endPoint = new IPEndPoint(remoteAddress, remotePort);
try
{
while (true)
{
GeneratingNumbers.Generate();
var number = GeneratingNumbers.Generate();
byte[] data = Encoding.Unicode.GetBytes(number.ToString());
Console.WriteLine(number);
sender.Send(data, data.Length, endPoint);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
sender.Close();
}
}
}
Далее написал клиент
class Program
{
static IPAddress remoteAddress;
const int localPort = 8001; // локальный порт для прослушивания входящих подключений
static void Main(string[] args)
{
try
{
remoteAddress = IPAddress.Parse("235.5.5.11");
Thread receiveThread = new Thread(new ThreadStart(ReceiveNumber));
receiveThread.Start();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
private static void ReceiveNumber()
{
UdpClient receiver = new UdpClient(localPort);
receiver.JoinMulticastGroup(remoteAddress, 20);
IPEndPoint remoteIp = null;
try
{
while (true)
{
byte[] data = receiver.Receive(ref remoteIp);
string number = Encoding.Unicode.GetString(data);
Console.WriteLine(number);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
receiver.Close();
}
}
}
Запускаю клиент и сервер все отрабатывает. Но если я запущу еще один клиент, то он не запуститься с ошибкой
Unhandled exception. System.Net.Sockets.SocketException (10048): Обычно разрешается только одно использование адреса сокета (протокол/сетевой адрес/порт).
at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, String callerName)
at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.Sockets.Socket.Bind(EndPoint localEP)
at System.Net.Sockets.UdpClient..ctor(Int32 port, AddressFamily family)
at System.Net.Sockets.UdpClient..ctor(Int32 port)
at ClientApp.Program.ReceiveNumber() in D:\ProjectProgram\TestClientServer\ClientApp\Program.cs:line 30
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
Подскажите пожалуйста, что реализовано не так или я как-то тестирую не верно.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
В своём проекте я использую изображения большого разрешения, из-за чего методы getpixel/setpixel работают очень медленно, то-есть програма лагает,...
Делаю игру, столкнулся с проблемой - мне нужно, чтобы объект создался всего один раз при помощи instantiate в void UpdateПробовал использовать bool, но не получилось
есть вот такой код, в wpf, выводит изображение и сохраняет его в bmpНо bmp сохраняется в 32-ух битном формате, как можно сохранять в 24х битном?