Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 63

Найти ошибку в коде Клиента для асинхронного I/O

28.01.2015, 01:56. Показов 625. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток. Помогите пожалуйста разобраться и найти ошибку в коде Клиента для асинхронного I/O. При компиляции клиента приложение выводит на экран информацию и сразу же закрывается, а при открытии исполняемого файла выводит ошибку о неизвестном хосте (аналогично и на сервере почему-то), хотя на сервере отображается, что подключение было произведено.

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
91
92
93
94
95
96
/*Server*/
 
class Server
{
    private IPEndPoint ip;
    private Socket socket;
    private int max_conn = 2;
    private const int port = 11000;
    private ManualResetEvent acceptEvent = new ManualResetEvent(false);
 
    public Server()
    {
        IPHostEntry ipHostInfo = Dns.Resolve("localhost");
        IPAddress ipAddress = ipHostInfo.AddressList[0];
        this.ip = new IPEndPoint(ipAddress, 11000);
        this.socket = new Socket(this.ip.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
        this.Init();
    }
 
    public void Init()
    {
        this.socket.Bind(this.ip);
        this.socket.Listen(this.max_conn);
        this.StartListening();
    }
 
    private void StartListening()
    {
        Console.WriteLine("Server starting...");
        while (true)
        {
            acceptEvent.Reset();
            this.socket.BeginAccept(new AsyncCallback(AcceptCallBack), this.socket);
            acceptEvent.WaitOne();
        }
    }
 
    private void AcceptCallBack(IAsyncResult ar)
    {
        Socket socket = (Socket)ar.AsyncState;
        Socket accept_socket = socket.EndAccept(ar);
        acceptEvent.Set();
        Console.WriteLine("A new connection. IP:port = " + accept_socket.RemoteEndPoint.ToString());
    }
 
    static void Main(string[] args)
    {
        Server server = new Server();
    }
}
 
/*Client*/
 
class Client
    {
    private IPEndPoint ip;
    private Socket client_socket;
    private const int port = 11000;
 
    public Client()
    {
        IPHostEntry ipHostInfo = Dns.Resolve("localhost");
        IPAddress ipAddress = ipHostInfo.AddressList[0];
        this.ip = new IPEndPoint(ipAddress, 11000);
        this.client_socket = new Socket(this.ip.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
        this.Connect();
        this.Disconnect();
    }
 
    public void Connect()
    {
        this.client_socket.BeginConnect(this.ip, new AsyncCallback(ConnectCallBack), this.client_socket);
    }
 
    private void ConnectCallBack(IAsyncResult ar)
    {
        Socket handler = (Socket)ar.AsyncState;
        this.client_socket.EndConnect(ar);
    }
 
    public void Disconnect()
    {
        this.client_socket.BeginDisconnect(false, new AsyncCallback(DisconnectCallBack), this.client_socket);
    }
    private void DisconnectCallBack(IAsyncResult ar)
    {
        Socket handler = ar.AsyncState as Socket;
        handler.EndDisconnect(ar);
        Console.WriteLine("Connection closed");
    }
 
    static void Main(string[] args)
    {
        Client server = new Client();
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.01.2015, 01:56
Ответы с готовыми решениями:

Реализация асинхронного клиента и сервера
Пытался сделать следующее: Клиент подключается к серверу и все время прослушивает его до тех пор, пока в форме не введут сообщение и...

Не могу найти ошибку в коде для apk приложения
Начал изучать Java и написание под Андроид. Eclipse с модулем имеется. Простая программка: ToggleButton, от состояния которого меняется...

Цикл в цикле для вычисления по формуле. Найти ошибку в коде
Приятного времени суток. Вопрос такой, как правильно реализовать следующую формулу: E_(k+1) = e*sin(E_k) + M Как вы поняли k это...

9
87 / 87 / 36
Регистрация: 27.11.2011
Сообщений: 713
28.01.2015, 09:43
wao_138, Прилепи проект я гляну

Добавлено через 47 минут
В коде впринцепе все правильно, не много не ясно что вам нужно.Вы только подключаетесь и сразу же разъединяете соединение не понятно для чего это. Хотите что бы окошко не закрывалось напишите
C#
1
2
3
4
5
static void Main(string[] args)
        {
            Server s=new Server();
            Console.ReadKey();
        }
0
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 63
28.01.2015, 10:35  [ТС]
jecus, в этом и весь прикол, если держать окно то оно выдает ошибку. Я когда дома буду скину весь проект.
0
87 / 87 / 36
Регистрация: 27.11.2011
Сообщений: 713
28.01.2015, 11:27
wao_138, а ошибку какую покажи
0
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 63
28.01.2015, 16:09  [ТС]
jecus, вот проект.
Вложения
Тип файла: rar Async_sock.rar (71.1 Кб, 3 просмотров)
0
87 / 87 / 36
Регистрация: 27.11.2011
Сообщений: 713
28.01.2015, 16:44
wao_138, у меня работает
0
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 63
28.01.2015, 20:22  [ТС]
jecus, и даже если открывать исполняемый файл?
0
87 / 87 / 36
Регистрация: 27.11.2011
Сообщений: 713
29.01.2015, 09:03
wao_138, exe имеешь ввиду?
0
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
29.01.2015, 19:17
попробуйте вместо localhost поставить "127.0.0.1"
0
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 63
02.02.2015, 01:02  [ТС]
Я разобрался, всем спасибо!)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.02.2015, 01:02
Помогаю со студенческими работами здесь

Необходимо найти ошибку в коде для расчета премии работнику
Sub ZapPrem() Dim theDefault As String, thePrompt As String, theTitle As String Dim theReply As String, OKFlag As Boolean, theB As...

Вывод оценки в программе для прохождения тестов, найти ошибку в коде
Приветствую всех, пытаюсь сделать в программе для прохождения тестов вывод оценки, но где-то накосячил в коде ... ...

Двумерный массив. Поиск нулей.Не могу найти ошибку ошибку в коде
Вот,например массив 5 5 0 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 считываются два числа m и n и далее в выходной...

Как найти сопротивление для включения цепь ротора асинхронного двигателя?
Мне надо найти Rп (Сопротивление, необходимое для включения цепь ротора) Формула Rп подскажите пожалуйста (4 задачки надо найти Rп)...

Найти сумму целых отрицательных чисел удовлетворяющих условию (найти и исправить ошибку в коде)
#include<iostream> #include<math.h> using namespace std; int main() { int y = 0; for(int i = -21; i < -99; i+=3) ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru