Note that there are some explanatory texts on larger screens.

plurals
  1. POC network server programming on linux
    text
    copied!<p>I would like to make program so that, when client disconnected, the server will back ready to accept a new request from client. Here is the code</p> <pre><code>#include &lt;sys/socket.h&gt; #include &lt;netinet/in.h&gt; #include &lt;arpa/inet.h&gt; #include &lt;time.h&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;stdlib.h&gt; #include &lt;unistd.h&gt; #define MAXLINE 100 #define LISTENQ 10 int main() { int tmp, listenfd, connfd; int sin_size; struct sockaddr_in servaddr, cliaddr; char buff[MAXLINE]; time_t ticks; while(true) { bzero(&amp;servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_addr.s_addr = INADDR_ANY; servaddr.sin_port = htons(13); memset(&amp;(servaddr.sin_zero),'\0',8); listenfd = socket(AF_INET, SOCK_STREAM, 0); if(listenfd == -1){ perror("error socket"); exit(1); } tmp=bind(listenfd, (struct sockaddr *)&amp;servaddr, sizeof(struct sockaddr)); if(tmp == -1){ perror("error bind.."); exit(1); } tmp=listen(listenfd, LISTENQ); if(tmp == -1){ perror("error listen"); exit(1); } sin_size = sizeof(struct sockaddr_in); connfd=accept(listenfd,(struct sockaddr *)&amp;cliaddr, &amp;sin_size); if(connfd == -1){ perror("error accept"); exit(1); } ticks = time(NULL); snprintf(buff,sizeof(buff),"Now Time: %.24s\r\n", ctime(&amp;ticks)); write(connfd, buff, strlen(buff)); close(connfd); close(listenfd); } } </code></pre> <p>I found a problem on this part </p> <pre><code>tmp=bind(listenfd, (struct sockaddr *)&amp;servaddr, sizeof(struct sockaddr)); </code></pre> <p>error: invalid conversion from 'int*' to 'socklen_t* {aka unsigned int*}' [-fpermissive]</p> <pre><code>connfd=accept(listenfd,(struct sockaddr *)&amp;cliaddr, &amp;sin_size); </code></pre> <p>error: initializing argument 3 of 'int accept(int, sockaddr*, socklen_t*)' [-fpermissive]</p> <p>What should I do with those problem? Didn't the pointer right?</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload