Skip to content

Instantly share code, notes, and snippets.

@justarandomuser
Last active September 13, 2018 14:06
Show Gist options
  • Save justarandomuser/45d4462da8d8077407a74e246bbe2d28 to your computer and use it in GitHub Desktop.
Save justarandomuser/45d4462da8d8077407a74e246bbe2d28 to your computer and use it in GitHub Desktop.
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <arpa/inet.h>
#define DATA_SIZE 10
#define PORT_NUMBER 8888
int main(void)
{
int mysocket, client_socket;
int testsocket;
int datainbuffer;
int result;
int len = 0;
int client_addr_size;
struct sockaddr_in server_addr, client_addr;
socklen_t mysockaddrlen = sizeof(struct sockaddr);
char sent_data[DATA_SIZE];
printf("[+] Starting\n");
mysocket = socket(AF_INET, SOCK_STREAM, 0);
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = INADDR_ANY;
server_addr.sin_port = htons( PORT_NUMBER );
bind(mysocket, (struct sockaddr *) &server_addr, sizeof(server_addr));
listen(mysocket, 2);
printf("[+] Socket number %d was allocated\n", mysocket);
printf("[+] Send more than %d bytes of data\n", DATA_SIZE);
client_socket = accept(mysocket, (struct sockaddr *) &client_addr, (socklen_t*) &client_addr_size);
recv(client_socket, sent_data, DATA_SIZE, 0);
printf("[+] Data received - %s\n", sent_data);
sleep(5);
result = ioctl(client_socket, FIONREAD, &len);
if (result == -1)
printf("[-] Ioctl call failed. Error is %s\n", strerror(errno));
else
printf("[+] Queue size is %d!\n", result); // MISTAKE HERE - should have been len instead of result
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment