Форум программистов, компьютерный форум, киберфорум
С++ под Linux
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
-15 / 0 / 4
Регистрация: 27.10.2015
Сообщений: 196
1

Ошибка "Соединение не установлено" при реализации эхо сервера

06.11.2016, 19:15. Показов 804. Ответов 9
Метки нет (Все метки)

Здравствуйте. Попробовала перевести свой С код эхо клиента на С++. До этого он прекрасно работал и программка эхо сервера подсоединялась к клиенту, а теперь всплывает ошибка СОЕДИНЕНИЕ НЕ УСТАНОВЛЕНО

SERVER: Echoing back: First test line
Read from socket
Received: First test line
Get input from stdin (wait for it)
CLIENT: Got no input, exiting
SERVER: Lost connection to the client


Надеюсь на Вашу помощь

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
#include <stdlib.h>
#define PREFIX "CLIENT: "
#include <string.h>
#define MAX_BUFFER 100
#define PORT 22000
#define MAX_CONNECTIONS 10
//10
class EchoClient {
 
//public:
//int sockfd,n;
//15
public:
void Client()
{
 
//20
int sockfd,n;
    char sendline[MAX_BUFFER];
    char recvline[MAX_BUFFER];
    sockaddr_in servaddr;
//25
    printf("Create socket\n");
    sockfd=socket(AF_INET,SOCK_STREAM, 0);
    bzero(&servaddr,sizeof servaddr);
    
    servaddr.sin_family=AF_INET;
    servaddr.sin_port=htons(PORT);
    inet_pton(AF_INET, "127.0.0.1", &(servaddr.sin_addr));
    printf("Connect socket (wait for it)\n");
    connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr));
    printf("Connected\n");
while(1)
    {
        char *res;
 
        bzero(sendline, MAX_BUFFER);
        bzero(recvline, MAX_BUFFER);
 
        printf("Get input from stdin (wait for it)\n");
        res = fgets(sendline, 100, stdin);
        /* What will happen if the following section is commented out?  $
        if (res == NULL)
        {
            /* Is it possible to exit with non-zero code? */
            printа("Got no input, exiting\n");
            exit(0);
        }
 
        printf("Write to socket: %s\n", sendline);
        write(sockfd,sendline,strlen(sendline) + 1);
        printf("Read from socket\n");
        read(sockfd,recvline, MAX_BUFFER);
        printf("Received: %s", recvline);
    }
 
}
 
};
 
int main(int argc, char **argv){
   
 //42   
EchoClient c;
c.Client();
return 0;
    };
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.11.2016, 19:15
Ответы с готовыми решениями:

Ошибка:"Соединение не установлено, т.к. конечный компьютер отверг запрос на подключение"
Привет. В чем может быть проблема? Только начала разбираться с WCF. Наверняка глупая ошибка,...

При повторном нажатии на кнопку "Отправить" в приложении "клиент" выскакивает ошибка, что хост принудительно разорвал соединение
Всем привет. Ребят выручайте. Уже 4-й день бьюсь с программой. В общем, тренируюсь создавать...

После перезагрузки сервера возникла "ошибка при подключении сервера баз данных MySQL"
Помогите, пожалуйста. После перезапуска сервера (Debian) через ISPmanager выходит ошибка...

Ошибка компилятора "Рекурсивное определение структур" при реализации AVL-дерева
Здравствуйте форумчане!! Реализовываю AVL-дерево, практически написал, но появилась ошибка ...

__________________

Записывайтесь на профессиональные курсы C++ разработчиков
9
nd2
3408 / 2789 / 1251
Регистрация: 29.01.2016
Сообщений: 9,426
06.11.2016, 21:41 2
Цитата Сообщение от NelLy0892 Посмотреть сообщение
Надеюсь на Вашу помощь
Это исходный код на С? Или что?
0
-15 / 0 / 4
Регистрация: 27.10.2015
Сообщений: 196
06.11.2016, 22:34  [ТС] 3
Это я пыталась код на С++ сделать. Нужен исходник на С ?
0
nd2
3408 / 2789 / 1251
Регистрация: 29.01.2016
Сообщений: 9,426
06.11.2016, 22:42 4
Цитата Сообщение от NelLy0892 Посмотреть сообщение
Это я пыталась код на С++ сделать.
Под Linux?
0
-15 / 0 / 4
Регистрация: 27.10.2015
Сообщений: 196
06.11.2016, 22:48  [ТС] 5
Пишу на Linux, но с той целью чтоб на всех платформах запустить можно было
0
nd2
3408 / 2789 / 1251
Регистрация: 29.01.2016
Сообщений: 9,426
06.11.2016, 22:59 6
Цитата Сообщение от NelLy0892 Посмотреть сообщение
чтоб на всех платформах запустить можно было
Это специфика Linux:
Цитата Сообщение от NelLy0892 Посмотреть сообщение
bzero
Цитата Сообщение от NelLy0892 Посмотреть сообщение
inet_pton
0
-15 / 0 / 4
Регистрация: 27.10.2015
Сообщений: 196
06.11.2016, 23:00  [ТС] 7
хорошо, так мне всё таки интересно почему же сервер клиента не находит, хотя код тот же
0
nd2
3408 / 2789 / 1251
Регистрация: 29.01.2016
Сообщений: 9,426
06.11.2016, 23:11 8
Цитата Сообщение от NelLy0892 Посмотреть сообщение
хорошо, так мне всё таки интересно почему же сервер клиента не находит, хотя код тот же
https://www.cyberforum.ru/cpp-linux/
0
-15 / 0 / 4
Регистрация: 27.10.2015
Сообщений: 196
07.11.2016, 14:13  [ТС] 9
Здравствуйте. Попробовала перевести свой С код эхо клиента на С++. Исходник в С прекрасно работал и программка эхо сервера подсоединялась к клиента, а теперь всплывает ошибка СОЕДИНЕНИЕ НЕ УСТАНОВЛЕНО

SERVER: Echoing back: First test line
Read from socket
Received: First test line
Get input from stdin (wait for it)
CLIENT: Got no input, exiting
SERVER: Lost connection to the client
SERVER: Accept a new connection (wait f


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
#include "common_header.h"/*
 How to find common headers? 
*/#include <arpa/inet.h>
#include <stdlib.h>
#define PREFIX "CLIENT: 
"int main(int argc, char **argv)
{  
  int sockfd,n;   
 char sendline[MAX_BUFFER]; 
   char recvline[MAX_BUFFER];   
 struct sockaddr_in servaddr;   
 print_notice("Create socket\n");  
  sockfd=socket(AF_INET,SOCK_STREAM, 0); 
   bzero(&servaddr,sizeof servaddr);  
  servaddr.sin_family=AF_INET;    
servaddr.sin_port=htons(PORT);  
  inet_pton(AF_INET, "127.0.0.1", &(servaddr.sin_addr));  
  print_notice("Connect socket (wait for it)\n");  
  connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr));  
  print_notice("Connected\n");    
while(1)    {        char *res;        bzero(sendline, MAX_BUFFER); 
       bzero(recvline, MAX_BUFFER);   
     print_notice("Get input from stdin (wait for it)\n");   
     res = fgets(sendline, 100, stdin);     
   /* What will happen if the following section is commented out?  */     
   if (res == NULL)    
    {            /* Is it possible to exit with non-zero code? */        
    print_notice("Got no input, exiting\n");            exit(0);        }       
 print_notice("Write to socket: %s\n", sendline);        write(sockfd,sendline,strlen(sendline) + 1);  
      print_notice("Read from socket\n"); 
       read(sockfd,recvline, MAX_BUFFER);  
      print_notice("Received: %s", recvline);    }}
 
сервер
#include "common_header.h"
#define PREFIX "SERVER: 
"int main(int argc, char **argv)
{    char str[MAX_BUFFER];    
int listen_fd, comm_fd; 
   struct sockaddr_in servaddr;   
 print_notice("Create socket\n"); 
   listen_fd = socket(AF_INET, SOCK_STREAM, 0); 
   bzero(&servaddr, sizeof(servaddr));   
 servaddr.sin_family = AF_INET; 
/* An alternative? */    servaddr.sin_addr.s_addr = htons(INADDR_ANY);
 /* Notice INADDR_ANY */    servaddr.sin_port = htons(PORT); 
/* notice host to network conversion */  
  print_notice("Bind socket to particular address\n");  
  bind(listen_fd, (struct sockaddr *) &servaddr, sizeof(servaddr)); 
   print_notice("Start listen on the socket\n");  
  listen(listen_fd, MAX_CONNECTIONS); 
/* notice that we are allowing only MAX_CONNECTIONS connections */  
  print_notice("Accept new connection (wait for it)\n");  
  comm_fd = accept(listen_fd, (struct sockaddr*) NULL, NULL); 
   print_notice("Accepted\n");    
while(1)    {        char res;        bzero(str, MAX_BUFFER);      
  res = read(comm_fd, str, MAX_BUFFER);    
    if (!res)        {            print_notice("Lost connection to the client\n");   
         printf("Accept a new connection (wait for it)\n");  
          comm_fd = accept(listen_fd, (struct sockaddr*) NULL, NULL);   
         printf("Accepted\n");        }   
     else        {            print_notice("Echoing back: %s", str);      
      write(comm_fd, str, strlen(str) + 1);        }    }}
Надеюсь на Вашу помощь
0
-15 / 0 / 4
Регистрация: 27.10.2015
Сообщений: 196
07.11.2016, 16:26  [ТС] 10
окей, размещу свой вопрос в теме по этой ссылке

Добавлено через 2 часа 13 минут
у меня есть шанс на подсказку?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.11.2016, 16:26

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

Ошибка: "error LNK2001: неразрешенный внешний символ" при реализации шаблонного синглтона
Доброго времени суток. Пытаюсь написать шаблон для синглтона, есть след. код Сам шаблон синглтона...

Ошибки "Expression syntax" и "Unreachable code" при реализации класса матриц
Подскажите по коду. #include &lt;iostream.h&gt; #include &lt;math.h&gt; #include &lt;string.h&gt; #include...

Ошибка "Недействительный сертификат сервера" при запуске почтового клиента The Bat 5.2
Доброе утро! вообщем все плохо! с утра запустил почтовый клиент The Bat 5.2 он не получает почту и...

VS c++ sockets (errors), Пример реализации TCP эхо-сервера
начал узучать сокеты в с++ , нашёл пример клиент серверного приложения. но возникают ошибки ,не...


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

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

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