Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++: Сети
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
BadCoder
1 / 1 / 0
Регистрация: 23.10.2013
Сообщений: 15
1

Не выходит подключиться к серверу с клиента

23.10.2013, 17:35. Просмотров 590. Ответов 6
Метки нет (Все метки)

Здравствуйте!Я недавно решил написать прогу клиент-сервер на c++.Вот код клиента:
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
#include <iostream>
#include <winsock.h>
using namespace std;
char addr[15];
int port;
const char* caddr;
char message[64];
const char* constmess;
int main()
{
    system("color 0b");
    cout<<"Enter the address : ";
    cin.getline(addr,1024);
    caddr=addr;
    cout<<"ENTER THE PORT : ";
    cin>>port;
  WSADATA wsa;
  WORD dll=MAKEWORD(2,1);
  WSAStartup(dll,&wsa);
  SOCKET Connection=socket(AF_INET,SOCK_STREAM,0);
  SOCKADDR_IN cl;
  cl.sin_addr.s_addr=inet_addr(caddr);
  cl.sin_port=htons(port);
  cl.sin_family=AF_INET;
  connect(Connection,(SOCKADDR*)&cl,sizeof(cl));
  while(true){
  send(Connection,message,64,0);
 cin.getline(message,64);
  }
}
А вот сервачок:
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
#include <iostream>
#include <winsock.h>
using namespace std;
char message[64];
const char* cnstmess;
char *addr;
int main()
{
WSADATA wsa;
WORD dll = MAKEWORD(2,1);
WSAStartup(dll,&wsa);
SOCKET Listen=socket(AF_INET,SOCK_STREAM,0);
SOCKET Connect=socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN serv;
serv.sin_addr.s_addr=host->h_addr_list;
serv.sin_port=htons(2048);
serv.sin_family=AF_INET;
bind(Listen,(SOCKADDR*)&serv,sizeof(serv));
cout<<host->h_addr_list;
listen(Listen,10);
if(listen){
    system("color 0b");
  cout<<"Listening......"<<endl;
}
int size=sizeof(serv);
if(Connect=accept(Listen,(SOCKADDR*)&serv,&size)){
  cout<<"NEW connection!!!"<<endl;
  system("pause");
}
}
Всё работает,но только на моём компьютере.Когда я кинул клиент другу,он не смог подключиться.(свой адрес я брал с 2ip.ru).Я ещё думал,что не тот адрес нужен клиенту.Прошу,помогите новичку!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2013, 17:35
Ответы с готовыми решениями:

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

WinSock клиент не может подключиться к серверу
Есть Сервер: ...

Как подключиться к smtp серверу mail.ru?
Вот когда мы хотим с помощью программы на си++ , используя заголовочный файл...

Передача числа от клиента серверу
Клиентская часть: #include &lt;winsock2.h&gt; #include &lt;iostream&gt; #pragma...

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

6
Avazart
Эксперт С++
7723 / 5632 / 549
Регистрация: 10.12.2010
Сообщений: 25,403
Записей в блоге: 17
25.10.2013, 23:23 2
Стоит посмотреть открыт ли порт который ты используешь.
1
BadCoder
1 / 1 / 0
Регистрация: 23.10.2013
Сообщений: 15
25.10.2013, 23:36  [ТС] 3
Смотрел.Закрыт.

Добавлено через 44 секунды
А как открыть-то!?
0
Avazart
Эксперт С++
7723 / 5632 / 549
Регистрация: 10.12.2010
Сообщений: 25,403
Записей в блоге: 17
25.10.2013, 23:38 4
Через брандмаузер вероятно, ну еще провайдер в некоторых случаях может не пропускать.
0
BadCoder
1 / 1 / 0
Регистрация: 23.10.2013
Сообщений: 15
25.10.2013, 23:40  [ТС] 5
Брэндмауэр отключал.Не помогло.А если провайдер?
0
Avazart
Эксперт С++
7723 / 5632 / 549
Регистрация: 10.12.2010
Сообщений: 25,403
Записей в блоге: 17
25.10.2013, 23:41 6
Цитата Сообщение от BadCoder Посмотреть сообщение
А если провайдер?
Просить что бы открыли.
0
BadCoder
1 / 1 / 0
Регистрация: 23.10.2013
Сообщений: 15
27.10.2013, 19:29  [ТС] 7
Открыть можно и в настройках маршрутизатора.

Добавлено через 25 секунд
Я открыл,но всё равно.
0
27.10.2013, 19:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2013, 19:29

Передача сообщения от клиента к серверу, сокеты
Хочу передать сообщение от клиента к серверу и вывести это сообщение. Как это...

Можно ли по TCP, зная IP, подключиться к серверу из любой точки мира?
если на сервере пробрасываешь порт то по TCP зная его айпишник и порт через ...

Как передать массив вещественных чисел от клиента к серверу?
Есть клиент/сервер на си, использующий winsock. Клиент/сервер получает и...


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

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

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