TCP server and cerr/cin

Hallo,
I have got included iostream library, but g++ gets me this errors:
1
2
3
4
5
6
7
8
9
10
hack2.cpp: In function ‘int main(int, char**)’:
hack2.cpp:141:9: error: ‘cout’ was not declared in this scope
hack2.cpp:141:9: note: suggested alternative:
In file included from hack2.cpp:17:0:
/usr/include/c++/4.7/iostream:62:18: note:   ‘std::cout’
hack2.cpp:141:52: error: expected ‘;’ before ‘)’ token
hack2.cpp:142:9: error: ‘cin’ was not declared in this scope
hack2.cpp:142:9: note: suggested alternative:
In file included from hack2.cpp:17:0:
/usr/include/c++/4.7/iostream:61:18: note:   ‘std::cin’

My code is:
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <unistd.h>

#include <fcntl.h>

#include <sys/types.h> 

#include <sys/socket.h>

#include <netinet/in.h>

#include <iostream>



 

void nonblock(int sockfd)

{

    int opts;

    opts = fcntl(sockfd, F_GETFL);

    if(opts < 0)

    {

        fprintf(stderr, "fcntl(F_GETFL) failed\n");

    }

    opts = (opts | O_NONBLOCK);

    if(fcntl(sockfd, F_SETFL, opts) < 0) 

    {

        fprintf(stderr, "fcntl(F_SETFL) failed\n");

    }

}

 

int main(int argc, char *argv[])

{

     int BUFLEN = 2000;

     int sockfd, newsockfd, portno;

     socklen_t clilen;

     char buffer[BUFLEN];

     struct sockaddr_in serv_addr, cli_addr;

     int n, i;

     int one = 1;


 

     if (argc < 2) {

         fprintf(stderr,"please specify a port number\n");

         //exit(1);

     }

     sockfd = socket(AF_INET, SOCK_STREAM, 0);

     if (sockfd < 0) {

        perror("ERROR create socket");

        exit(1);

     }

     setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &one, sizeof one);    //allow reuse of port

     //bind to a local address

     bzero((char *) &serv_addr, sizeof(serv_addr));

     portno = 35;  //atoi(argv[1]);

     serv_addr.sin_family = AF_INET;

     serv_addr.sin_addr.s_addr = INADDR_ANY;

     serv_addr.sin_port = htons(portno);

     if (bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0) {

        perror("ERROR on bind");

        exit(1);

     }

     //listen marks the socket as passive socket listening to incoming connections, 

     //it allows max 5 backlog connections: backlog connections are pending in queue

     //if pending connections are more than 5, later request may be ignored

     listen(sockfd,5);

     //accept incoming connections

     clilen = sizeof(cli_addr);

     newsockfd = accept(sockfd, (struct sockaddr *) &cli_addr, &clilen);

     //nonblock(newsockfd);        //if we want to set the socket as nonblock, we can uncomment this

     if (newsockfd < 0) {

        perror("ERROR on accept");

        exit(1);

     }

     printf("connection accepted\n");
     

        cout << "Problém s pojmenováním soketu.");
        cin >> NULL;
	
         sleep(2);

     close(newsockfd);

     close(sockfd);

     return 0; 

}

Please help me I don't know what to do?
Checkout namespaces.


So much white space.
Excuse me, I don't know what do you think
Include this line after #include <iostream>


using namespace std;


Hope this solves your problem!!


I actually recommend that you remove the cout, cin and the include <iostream> and stick to the C stdio functions. Since the C-stdio functions are used for the rest of the program just stick with them for this output. It's usually not recommended to mix the C-stdio functions and the C++ streams.
Topic archived. No new replies allowed.