Форум программистов, компьютерный форум, киберфорум
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 14
1

Как развернуть socket сервер на хостинге - Клиент Серверное приложение

23.04.2016, 23:33. Показов 2904. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Столкнулся с такой проблемой:
У меня есть клиент и сервер, написанные на сокетах
Сервер
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
namespace Server_For_Educational_Office
{
    class Program
    {
        static void Main(string[] args)
        {
            int port = 8005;
            bool fl = true;
            IPEndPoint ipPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), port);
            Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            try
            {
                listener.Bind(ipPoint);
                listener.Listen(10);
 
                while (fl)
                {
                    Console.WriteLine("Сервер запущен, ждем подключений...");
                    Socket handler = listener.Accept();
                    int dataSize = 8192;
                    byte[] data = new byte[dataSize];
                    MemoryStream mems = new MemoryStream();
                    string message = "";
 
                    do
                    {
                        dataSize = handler.Receive(data);
 
                        message += Encoding.UTF8.GetString(data, 0, dataSize);
                        mems.Write(data, 0, dataSize);
                        
                    } while (handler.Available > 0);
 
                    string command = message.Substring(message.IndexOf('<'), message.IndexOf('>') + 1);  
                    message = message.Remove(0, message.IndexOf('>') + 1);
                    string answer = "";
 
                    switch (command)
                    {
                        case "<Command=GetStudentList>":
                            {
                                Console.WriteLine(DateTime.Now.ToShortTimeString() + ":" + "Получен запрос {0}. Выполняю...", command);
                                answer = DataBaseRequest.GetStudentList();
                                //fl = false;
                                break;
                            }
                        case "<Command=SendEvent>":
                            {
                                Console.WriteLine(DateTime.Now.ToShortTimeString() + ":" + "Получен запрос {0}. Выполняю...", command);
                                answer = DataBaseRequest.SendEventToDataBase(message);
                                //fl = false;
                                break;
                            }
                        case "<Command=SendMessage>":
                            {
                                Console.WriteLine(DateTime.Now.ToShortTimeString() + ":" + "Получен запрос {0}. Выполняю...", command);
                                answer = DataBaseRequest.SendMessageToDataBase(message);
                                break;
                            }
                        case "<Command=SendDeadline>":
                            {
                                Console.WriteLine(DateTime.Now.ToShortTimeString() + ":" + "Получен запрос {0}. Выполняю...", command);
                                answer = DataBaseRequest.SendDeadlineToDataBase(message);
                                break;
                            }
                        case "<Command=SendTask>":
                            {
                                Console.WriteLine(DateTime.Now.ToShortTimeString() + ":" + "Получен запрос {0}. Выполняю...", command);
                                answer = DataBaseRequest.SendTaskToDataBase(message);
                                break;
                            }
                    }
 
                    Console.WriteLine(DateTime.Now.ToShortTimeString() + ":" + "Работа с БД успешно завершена, происходит отправка ответа клиенту.");
                    data = Encoding.UTF8.GetBytes(answer);
                    handler.Send(data);
                    handler.Shutdown(SocketShutdown.Both);
                    handler.Close();
                    Console.WriteLine();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
            Console.ReadLine();
 
        }
    }
}

Клиент в свою очередь посылает какие-то команды серверу, который в свою очередь лезет в БД.
Все отлично работает в локальной сети. Теперь встал вопрос, чтобы вынести сервер на какой-нибудь хостинг. Окей, я нашел предложение от Amazon - EC2. Получил доступ к виртуальной машине - Windows Server 2012.
Но что дальше? Я перенес свой сервер туда, изменил в коде ip с локального на ip виртуалки, но теперь сервер падает при запуске с ошибкой.

Подскажите, как правильно перенести туда сервер? Что надо изменить в коде?
В результате должно быть следующее - я запускаю server app на Windows Server от Amazon, он работает и слушает входящие к нему команды, общается с БД.

Очень прошу помочь разобраться с этой проблемой.
Миниатюры
Как развернуть socket сервер на хостинге - Клиент Серверное приложение  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.04.2016, 23:33
Ответы с готовыми решениями:

Клиент-серверное приложение: как определить, что сервер/клиент не отвечает в течении определенного времени
Пишу клиент-серверное приложение. Использую TCPListener и TCPClient. Вопрос: как определить что...

Как организовать клиент-серверное приложение
Делаю лабораторную: необходимо написать три приложения на с#, два сервера (ServerInput и...

Как написать клиент-серверное приложение
Как сделать так чтоб программа обменивалась данными с другой програмой через глобальную сеть....

Как написать клиент-серверное приложение
Привет всем, хочу написать сервер.Пересмотрел кучу уроков и статей и т.д. ,но там нет подробного...

2
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 14
24.04.2016, 16:12  [ТС] 2
решено
0
0 / 0 / 0
Регистрация: 11.02.2021
Сообщений: 41
24.09.2022, 07:49 3
Помоги, если решено. Что ты сделал?
0
24.09.2022, 07:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.09.2022, 07:49
Помогаю со студенческими работами здесь

Клиент-Серверное приложение: как отсоединиться от сервера
Клиент на C# Сервер на ANSI-C Сервер подаёт структуры размером в 38байт. Клиент Получает...

Как создать простенькое клиент-серверное приложение
вобщем такая задача: создать простенькое клиентское и серверное приложение, чтобы с клиента можно...

Как написать клиент-серверное приложение для управления COM портом
Здравствуйте, Написал в Visual Studio 2010 программу для работы с COM портом - отправка...

Клиент-серверное приложение: как написать реакцию сервера на каждое сообщение от клиента
В общем пытаюсь разобраться с сетью в C#, условная задача написать сервер - который осуществляет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru