Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
0 / 0 / 1
Регистрация: 23.02.2011
Сообщений: 6

SOCKET Связь клиент/сервер в глобальной сети

31.05.2011, 17:02. Показов 4700. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех.

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

Код для лок. сети:
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
#define DEF_HOSTADDR "127.0.0.1"
  int PORT=3182; //порт TCP, служит для организации сети
 
  SOCKET ss, cc; //сокеты для организации сети  
  sockaddr_in Addr; //обьявление структуры адреса и порта для передачи и приёма данных  
 
    //инициализация структуры типа сообщений, адреса и порта для передачи и приёма данных
    Addr.sin_family=AF_INET;
    Addr.sin_addr.s_addr=INADDR_ANY;
    Addr.sin_port=htons(PORT);
 
    m_Port=PORT;
  m_Address=DEF_HOSTADDR;
  m_Mask="255.0.0.0"; //в графе MASK задаётся маска сети
    m_Interface="2"; //в графе № Interface задаётся интерфейс, изначально 2,
 
// сервер
 
    //создание соединения для приёма данных
    ss=socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
 
    //привязывание созданного соединения к порту и к IP адресу
   if (bind(ss, (sockaddr*)&Addr, sizeof(Addr))==SOCKET_ERROR)
   {
      closesocket(ss);
      ss=0;
      AfxMessageBox("Cannot bind socket");
   }  
 
    //инициализация для приёма данных  
   if (listen(ss, SOMAXCONN)==SOCKET_ERROR)
   {
      closesocket(ss);
      ss=0;
      AfxMessageBox("Cannot listen socket");
   }
 
//!!! сервер
 
 
// клиент
 
  //создание соединения для передачи данных
  cc=socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
 
  if (cc==SOCKET_ERROR)
  {
    closesocket(cc);
    cc=0;
    AfxMessageBox("Cannot create socket");
   }
 
    //соединение с портом сервера
    SOCKADDR_IN servsin = {AF_INET};
    servsin.sin_port = htons(u_short(PORT));
    servsin.sin_addr.S_un.S_addr = inet_addr(m_Address);
    if (connect(cc, (LPSOCKADDR)&servsin, sizeof(servsin))==SOCKET_ERROR)
  {
    closesocket(cc);
    cc=0;
  }
 
//!!! клиент
Подскажите пожалуйста, что нужно изменить или Ваш вариант.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.05.2011, 17:02
Ответы с готовыми решениями:

Передача файлов клиент-сервер-клиент используя Socket
Добрый день! Срочно нужна помощь. Мне нужно передать файлы с клиента на сервер и обратно, используя TServerSocket и TClientSocket. ...

Связь TCP сервер-клиент
Включаю сервер на прослушку, соединение от клиента приходит - вызывается сигнал newConnection(), а сигнал connected() для клиента хоть убей...

Клиент сервер для глобальной сети на С#
Дело такое, нужно сделать сервер, который будет висеть на каком-нибуть хостинге, а клиент будет запускаться на ПК. При получении сообщения...

1
3 / 3 / 0
Регистрация: 31.05.2011
Сообщений: 10
01.06.2011, 00:23
Ну, во-первых, нужно правильно задать DEF_HOSTADDR. Если ысе равно не работает, то копать в сторону фаервола
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.06.2011, 00:23
Помогаю со студенческими работами здесь

Связь TCP сервер - сервер-клиент на node.js - браузер. нужна коррекция
Суть проблемы: написал по примерам программу, с помощью которой можно с браузера отправить команду на TCP сервер и получить ответ. Все...

Сервер с клиентами которые работают по глобальной сети
Как сделать сервер который буде работать не по локальной сети, а по глобальной, т. е. сервер отправляет клиентам сообщения по глобальной...

Пропал доступ на FTP сервер из глобальной сети
Друзья, нужна помощь. Создал FTP сервер для хранения файлов на ОС debian 8 под виртуальной машиной в Hyper-V на Windows Server 2016. Все...

Клиент-сервер Socket
Нашел легкий пример по клиент-серверу. Только почему-то крашится при выборе клиента. Помогите пожалуйста, может кто знает что? ...

Socket Клиент-Сервер Deadlock
Добрый день, столкнулся с проблемой Deadlock на стороне сервера и не знаю как её решить.Запускаю сервер,а затем 2 клиента, отправляю...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru