Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 28.08.2016
Сообщений: 25
1

Клиент сервер на двух виртуальных машинах

18.06.2017, 20:13. Просмотров 654. Ответов 3
Метки нет (Все метки)

Здравствуйте Друзья,

Сижу целый день над проблемой, гугл перерыл (русско и англоязычные ресурсы) никто и ничто не помогло.

Так вот проблема заключается в следующем, есть 2 виртуальные машины созданные через VMWare: Ubuntu Server и обычный Ubuntu c GUI. Настроил сеть между ними(пингуются). Айпи Убунту Сервера 192.168.98.129., айпи Убунту 192.168.98.128.

Написал на си сервера на Убунту Сервер, код:

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
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
 
int main () {
 
   int s = socket(AF_INET, SOCK_STREAM, 0);
   struct sockaddr_in st;
   st.sin_family = AF_INET;
   st.sin_addr.s_addr = htonl(INADDR_ANY);
   st.sin_port = htons(5000);
 
   bind(s, (struct sockaddr *)&st, sizeof(st));
 
   int ac = accept(s, (struct sockaddr *)NULL, NULL);
 
   send(ac, "Hi", 101, 0);
 
return 0; }
А код клиента написанный на простом Убунту:

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
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
 
 
 
int main () {
 
    int sock = socket(AF_INET, SOCK_STREAM, 0);
 
    struct sockaddr_in struc;
 
    struc.sin_family = AF_INET;
    struc.sin_addr.s_addr = inet_addr("192.168.98.129");
    struc.sin_port = htons(5000);     
    
    if(connect(sock, (struct sockaddr *)&struc, sizeof(struc)) < 0) {
        printf("Conn failed\n");        
        }
    char mess[101];
    
    recv(sock, mess, 101, 0);
 
    printf("%s", mess);
 
    
 
return 0;
}
Запускаю и там и там, без ошибок. Только вот Сообщение Хай от сервера не приходит.

А вот когда запускаю сервера и клиента на одной машине прописывая айпи в коде клиента 127.0.0.1 все работает.

Заранее спасибо за помощь друзья!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.06.2017, 20:13
Ответы с готовыми решениями:

Клиент-сервер на сокетах на разных машинах
Всем здравствовать! Не могу справиться с казалось бы простой задачей. А именно - передать строку...

Возможно ли реализовать клиент и сервер на разных машинах в одной ЛВС?
есть клиент - СОМ-объект. есть сервер - СОМ-объект. клиент передаёт серверу HWND окна, которое...

Сеть на виртуальных машинах
Установил win server 2008R2 на виртуальную машину VM Ware 8, и еще две виртуальные машины создал...

Автоматизация процессов в виртуальных машинах
Здрастье, дорогие друзья. У меня вопрос: можно ли автоматизировать работу в нескольких виртуальнъх...

3
1592 / 886 / 397
Регистрация: 12.05.2016
Сообщений: 2,324
19.06.2017, 03:32 2
Axel92, порт открыт?
0
0 / 0 / 1
Регистрация: 28.08.2016
Сообщений: 25
19.06.2017, 06:41  [ТС] 3
Честно не знаю. Просто так прописал порт 5000, не зная открыт он или нет.

Как проверить состояние этого порта?

Если закрыт как его открыть?

Если даже закрыт, когда запускаю клиент сервера на одном компе, с портом 5000 все работает.
0
1592 / 886 / 397
Регистрация: 12.05.2016
Сообщений: 2,324
19.06.2017, 07:10 4
Axel92, телнетом, наверное, можно "telnet ip 5000".

Добавлено через 1 минуту
Цитата Сообщение от Axel92 Посмотреть сообщение
Если закрыт как его открыть?
Гуглить iptables открыть порт.
Цитата Сообщение от Axel92 Посмотреть сообщение
Если даже закрыт, когда запускаю клиент сервера на одном компе, с портом 5000 все работает.
Я не помню как пакеты с localhost по таблицам ходят.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.06.2017, 07:10

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

защита от запуска на виртуальных машинах
Хотелось бы запретить в связи с принадлежностями програмки его запуск в виртуалках, хотябы в...

Как расшарить интернет по сети и виртуальных машинах с помощью маршрутиризации удаленного доступа
Народ! объясните нубу как расшарить интернет по сети и виртуальных машинах с помощью...

Доброго времени суток! Нужен скрипт выводящий все данные о запущенных виртуальных машинах в сервере
Доброго времени суток! Нужен скрипт выводящий все данные о запущенных виртуальных машинах в сервере.

Взаимодействие WinCC с Labview 2013, как сервер-клиент, так и клиент-сервер
Здравствуйте. Интересует информация о взаимодействии WinCC с Labview 2013, как сервер-клиент, так и...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.