Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 18.06.2014
Сообщений: 8
1

Сокеты/ не могу подключиться к 13 порту

28.02.2018, 19:57. Показов 686. Ответов 3

Author24 — интернет-сервис помощи студентам
Всем привет, прошу помощи, начал изучать сетевое программирование по книге UNIX: разработка сетевых приложений и застрял на первом же примере ( запрос даты и времени ), в чем моя ошибка функция connect возвращает -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
 1 #include "unp.h"
 
 
 2 int
 
 3 main(int argc, char **argv)
 
 4 {
 
 5  int sockfd, n;
 
 6  char recvline[MAXLINE + 1];
 
 7  struct sockaddr_in6 servaddr;
 
 
 8  if (argc != 2)
 
 9   err_quit("usage: a.out <Ipaddress>");
 
 
10  if ((sockfd = socket(AF_INET6, SOCK_STREAM, 0)) < 0)
 
11   err_sys("socket error");
 
 
12  bzero(&servaddr, sizeof(servaddr));
 
13  servaddr.sin6_family = AF_INET6;
 
14  servaddr.sin6_port = htons(13); /* сервер времени и даты */
 
15  if (inet_pton(AF_INET6, argv[1], &servaddr.sin6_addr) <= 0)
 
16   err_quit("inet_pton error for %s", argv[1]);
 
 
17  if (connect(sockfd, (SA*)&servaddr, sizeof(servaddr)) < 0)
 
18   err_sys("connect error");
 
 
19  while ((n = read(sockfd, recvline, MAXLINE)) > 0) {
 
20   recvline[n] = 0; /* символ конца строки */
 
21   if (fputs(recvline, stdout) == EOF)
 
22    err_sys("fputs error");
 
23  }
 
24  if (n < 0)
 
25   err_sys("read error");
 
 
26  exit(0);
 
27 }
Я решил пойти своим путем и не использовать заголовочный файл авторов:
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
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h> // for sockaddr_in
#include <sys/types.h>
#include <strings.h> //bzero()
#define BUFSIZE 1000
#include <arpa/inet.h> //for inet_pton()
#include <unistd.h> // for read()
 
int main(void)
{
char ipserv[] = "216.58.206.14";
int sockfd = 0;
char recbuf[BUFSIZE];
struct sockaddr_in servaddr;
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(13);
inet_pton( AF_INET, ipserv, &servaddr.sin_addr); 
sockfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
int conres = connect(sockfd, (struct sockaddr * )&servaddr, sizeof(servaddr));
 
printf("Socket descriptor = %d Result of connecting = %d\n", sockfd, conres);
 
int n; 
 
while (( n = read( sockfd, recbuf, BUFSIZE) > 0))
{
recbuf[n] = '\0';
}
 
if (fputs(recbuf, stdout) == EOF)
printf("string error");
if (n<0)
printf("read error");
 
return 0;
}
Внимание вопрос! В чем ошибка? На 80 порт коннектится, на 13 никак. Кто учился по этой книге как вы решили эту проблему?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.02.2018, 19:57
Ответы с готовыми решениями:

Pinboard II, не могу подключиться к порту
Всем привет! Иду по шагам в &quot;Quick Start&quot;, подсоединил плату по USB (питание - USB), комп нашел...

При отключенном брандмауэре не могу подключиться порту
Пишу приложение, работающее на сокетах. Сервер будет располагаться на порте 10000. Запускаю...

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

Сокеты - Авторизация на 23-м порту
Подключаюсь к D-Link роутеру, подключается удачно, но проблема с кириллицей и аутентификацией. ...

3
590 / 413 / 135
Регистрация: 02.10.2008
Сообщений: 1,745
Записей в блоге: 1
01.03.2018, 09:10 2
А сразу, как определили, что connect() вернул -1 распечатать perror("Error open socket: "); что печатает???
0
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
01.03.2018, 11:02 3
А сервер запущен? Кто-нибудь ожидает подключения на этот 13 порт?
1
0 / 0 / 0
Регистрация: 18.06.2014
Сообщений: 8
03.03.2018, 15:21  [ТС] 4
drfaust
Ошибка Connection refused
Humanoid Сервер был запущен, но действительно 13 порт был закрыт, нашел сервер с открытым портом и все заработало, спасибо за наводку
0
03.03.2018, 15:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.03.2018, 15:21
Помогаю со студенческими работами здесь

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

Определить и подключиться к девайсу на COM порту
Знаю что подобных тем много, форум перерыл, но ответа не нашел. Задача следующая необходимо...

Не могу подключиться к сети Wfi МГТС Gpon. Пишет что винда не может подключиться
Скрины

Не могу подключиться к серверу по FTP ошибка Превышено время ожидания соединения, Ошибка:Невозможно подключиться к серверу
Всем доброго настроения! ПЫтался подключиться через две программы с разных компов (точнее компа...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru