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

Передача коротких сообщений между двумя компьютерами в Интернет

23.03.2011, 22:32. Показов 3957. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, уважаемые всем!
Требуется приложения такого плана.
Есть два компьютера в сети Интернет. На одном запускаем Сервер (будет принимать сообщения), а на втором запускаем Клиент ( будет передавать сообщения ).
Как это реализовать? как я понимают для Сервера нужен стационарный IP обязательно? Сделал это , но с машины-клиента по этому адресу не пингуется (прошу не закидывать ни чем. Молодой исчо )
До этого клиент-серверные приложения ни разу не делал.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.03.2011, 22:32
Ответы с готовыми решениями:

Создание чата между двумя компьютерами через интернет
Салют! Заинтересовала меня работа с сокетами. Поэтому решил разобраться на примере создания чата между двумя компьютерами. ip получателя...

Передача звука между двумя компьютерами и запись его в файл
Нужно создать программу, которая могла бы одновременно принимать звук со встроенного микрофона и передавать его на другой компьютер с...

Передача файла между двумя компьютерами
Как я могу передавать файл между двумя компьютерами? Варианты: 1. C использованием socket - Нет, тк IP адреса компьютеров серые и...

4
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
23.03.2011, 23:00
Цитата Сообщение от cowboy Посмотреть сообщение
Сделал это , но с машины-клиента по этому адресу не пингуется
Какой IP ты принимал для сервера? Совпадает ли он с тем что возвращает www.myip.ru?
0
0 / 0 / 0
Регистрация: 28.09.2009
Сообщений: 12
23.03.2011, 23:08  [ТС]
Проверил сейчас еще раз.
IP мой правильно выдает. Когда пытаюсь запустить сервер-выдает ошибку в эттаче
Миниатюры
Передача коротких сообщений между двумя компьютерами в Интернет  
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
23.03.2011, 23:14
А ping работает?
0
0 / 0 / 0
Регистрация: 28.09.2009
Сообщений: 12
23.03.2011, 23:16  [ТС]
Да работает

Добавлено через 53 секунды
Но если в Бокс просто поставить 192.168.10.1(Адрес в локалке), то приложение работает. Но для внешнего IP нет

Добавлено через 57 секунд
Вообще вот основной код. Может стоит учитывать специфику работы в Интернет?

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
  try
            {
 
                IPAddress ipaLocal = IPAddress.Parse(IpAddress.Text);
                // If the TCP listener object was not created before, create it
                if (tlsServer == null)
                {
                    // Create the TCP listener object using the IP of the server and the specified port
                    tlsServer = new TcpListener(ipaLocal, Convert.ToInt32(txtPort.Text));
                }
                // Write the status to the log textbox on the form (txtLog)
                this.Invoke(new UpdateStatusCallback(this.UpdateStatus), new object[] { "Starting the server...\r\n" });
                // Start the TCP listener and listen for connections
                tlsServer.Start();
                // Write the status to the log textbox on the form (txtLog)
                this.Invoke(new UpdateStatusCallback(this.UpdateStatus), new object[] { "The server has started. Please connect the client to " + ipaLocal.ToString() + "\r\n" });
                // Accept a pending connection
                TcpClient tclServer = tlsServer.AcceptTcpClient();
                // Write the status to the log textbox on the form (txtLog)
                this.Invoke(new UpdateStatusCallback(this.UpdateStatus), new object[] { "The server has accepted the client\r\n" });
                // Receive the stream and store it in a NetworkStream object
                strRemote = tclServer.GetStream();
                // Write the status to the log textbox on the form (txtLog)
                this.Invoke(new UpdateStatusCallback(this.UpdateStatus), new object[] { "The server has received the stream\r\n" });
                // For holding the number of bytes we are reading at one time from the stream
                int bytesSize = 0;
                // The buffer that holds the data received from the client
                byte[] downBuffer = new byte[2048];
                // Read the first buffer (2048 bytes) from the stream - which represents the file name
                bytesSize = strRemote.Read(downBuffer, 0, 2048);
                // Convert the stream to string and store the file name
                string FileName = System.Text.Encoding.ASCII.GetString(downBuffer, 0, bytesSize);
                // Set the file stream to the path C:\ plus the name of the file that was on the sender's computer
                strLocal = new FileStream(@"C:\" + FileName, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
                // The buffer that holds the data received from the client
                downBuffer = new byte[2048];
                // Read the next buffer (2048 bytes) from the stream - which represents the file size
                bytesSize = strRemote.Read(downBuffer, 0, 2048);
                // Convert the file size from bytes to string and then to long (Int64)
                long FileSize = Convert.ToInt64(System.Text.Encoding.ASCII.GetString(downBuffer, 0, bytesSize));
                // Write the status to the log textbox on the form (txtLog)
                this.Invoke(new UpdateStatusCallback(this.UpdateStatus), new object[] { "Receiving file " + FileName + " (" + FileSize + " bytes)\r\n" });
                // The buffer size for receiving the file
                downBuffer = new byte[2048];
                // From now on we read everything that's in the stream's buffer because the file content has started
 
                while ((bytesSize = strRemote.Read(downBuffer, 0, downBuffer.Length)) > 0)
                {
                    // Write the data to the local file stream
                    strLocal.Write(downBuffer, 0, bytesSize);
                    // Update the progressbar by passing the file size and how much we downloaded so far to UpdateProgress()
                    this.Invoke(new UpdateProgressCallback(this.UpdateProgress), new object[] { strLocal.Length, FileSize });
                }
                // When this point is reached, the file has been received and stored successfuly
            }
 
            finally
            {
 
                // This part of the method will fire no matter wether an error occured in the above code or not
                // Write the status to the log textbox on the form (txtLog)
                this.Invoke(new UpdateStatusCallback(this.UpdateStatus), new object[] { "The file was received. Closing streams.\r\n" });
                // Close the streams
                strLocal.Close();
                strRemote.Close();
                // Write the status to the log textbox on the form (txtLog)
                this.Invoke(new UpdateStatusCallback(this.UpdateStatus), new object[] { "Streams are now closed.\r\n" });
                // Start the server (TCP listener) all over again
                StartReceiving();
 
            }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.03.2011, 23:16
Помогаю со студенческими работами здесь

Расшарить папку между двумя компьютерами в Интернет
Есть два компьютера, подключенные к интернету. Можно ли на одном из них расшарить выбранную папку так, чтобы она была видна на втором...

wi fi нужно сделать интернет между двумя компьютерами
Вообщем ситуация такая есть один компьютер с интернетом от укртелекома, через 200-250 метром в другом доме нужно провести интернет до...

Интернет работает, а локалка между двумя компьютерами нет.
Здравствуйте! Моя проблема - отсутствие локальной сети между ПК. Соединение компов по WiFi. Короче мой комп не видит комп друга, который...

Как создать сеть между двумя компьютерами с выходом в интернет
Имеется ADSL роутер "DSL-2540U" и D-Link "DIR-300",стационарный комп. и ноутбук.Win 7 на обоих. Сейчас подключено так: Телефонный кабель...

Передача файла между двумя компьютерами через gprs модемы
Здравствуйте!!! Подскажите пожалуйста как осуществить такую передачу, я сначала хотел сделать через фтп - сервер, но потом подумал, можно...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru