Skip to content

Instantly share code, notes, and snippets.

@kotaroito
Created January 31, 2014 12:51
Show Gist options
  • Save kotaroito/8731568 to your computer and use it in GitHub Desktop.
Save kotaroito/8731568 to your computer and use it in GitHub Desktop.
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <string.h>
int main(int argc, char* argv[])
{
struct sockaddr_in sv_addr;
struct sockaddr_in cl_addr;
int len = sizeof(struct sockaddr_in);
int listen_fd;
int conn_fd;
// create socket
if ( (listen_fd = socket(AF_INET, SOCK_STREAM, 0)) < 0 ) {
perror("socket");
exit(EXIT_FAILURE);
}
// bind
memset(&sv_addr, 0, sizeof(sv_addr));
sv_addr.sin_family = AF_INET;
sv_addr.sin_addr.s_addr = INADDR_ANY;
sv_addr.sin_port = htons(8983);
if ( (bind(listen_fd, (struct sockaddr*)&sv_addr, len)) < 0 ) {
perror("bind");
exit(EXIT_FAILURE);
}
// listen
if ( (listen(listen_fd, SOMAXCONN)) < 0 ) {
perror("listen");
exit(EXIT_FAILURE);
}
// accept
if ( (conn_fd = accept(listen_fd, (struct sockaddr*)&cl_addr, &len)) < 0 ) {
perror("accept");
exit(EXIT_FAILURE);
}
puts("server will close...");
close(listen_fd);
if ( close(conn_fd) < 0 ) {
perror("close");
exit(EXIT_FAILURE);
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment