Skip to content

Instantly share code, notes, and snippets.

@RyanKung
Created September 10, 2012 07:50
Show Gist options
  • Save RyanKung/3689517 to your computer and use it in GitHub Desktop.
Save RyanKung/3689517 to your computer and use it in GitHub Desktop.
basic socket
#import <stdio.h>
#import <sys/socket.h>
#import <arpa/inet.h>
#import <stdlib.h>
#import <string.h>
#import <unistd.h>
#define MAXPENDING 5
void HandleTCPClient(int clntSocket);
int main(int argc, char *argv[]) {
int wsServSock, wsClntSock;
struct sockaddr_in wsServAddr, wsClntAddr;
unsigned short wsPort;
unsigned int clntLen;
if (argc != 2) {
printf(stderr, "Usage: %s <Server Port>\n", argv[0]);
exit(1);
}
wsPort = atoi(argv[1]);
memset(&wsServAddr, 0, sizeof(wsServAddr));
wsServAddr.sin_family = AF_INET;
wsServAddr.sin_addr.s_addr = htonl(INADDR_ANY);
wsServAddr.sin_port = htons(wsPort);
if ((wsServSock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0)
printf("socket() failed");
if (bind(wsServSock, (struct sockaddr *) &wsServAddr, sizeof(wsServAddr)) < 0 )
printf("bind() failed");
if (listen(wsServSock, MAXPENDING) < 0)
printf("listen() failed");
for(;;) {
clntLen = sizeof(wsClntAddr);
if ((wsClntSock = accept(wsServSock, (struct sockaddr *) &wsClntAddr,
&clntLen)) < 0)
printf("accept() failed");
printf("Handling client %s\n", inet_ntoa(wsClntAddr.sin_addr));
//HandleTCPClient(wsClntSock);
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment