Advertisement
Guest User

WASM attempt

a guest
Jul 8th, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.37 KB | None | 0 0
  1. #define WASM_EXPORT __attribute__((visibility("default")))
  2. #include <stdio.h>
  3. #include <sys/socket.h>
  4. #include <stdlib.h>
  5. #include <netinet/in.h>
  6. #include <string.h>
  7. #define PORT 1251
  8. int sock = 0, valread;
  9. WASM_EXPORT
  10. bool connect(*char hello) {//copiously stolen from geeksforgeeks.org/socket-programming-cc/
  11.     struct sockaddr_in address;
  12.     struct sockaddr_in serv_addr;
  13.     char buffer[1024] = {0};
  14.     if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0)
  15.     {
  16.         printf("\n Socket creation error \n");
  17.         return -1;
  18.     }
  19.  
  20.     memset(&serv_addr, '0', sizeof(serv_addr));
  21.  
  22.     serv_addr.sin_family = AF_INET;
  23.     serv_addr.sin_port = htons(PORT);
  24.    
  25.     // Convert IPv4 and IPv6 addresses from text to binary form
  26.     if(inet_pton(AF_INET, "192.168.2.165", &serv_addr.sin_addr)<=0)
  27.     {
  28.         printf("\nInvalid address/ Address not supported \n");
  29.         return -1;
  30.     }
  31.  
  32.     if (connect(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0)
  33.     {
  34.         printf("\nConnection Failed \n");
  35.         return -1;
  36.     }
  37.     send(sock , hello , strlen(hello) , 0 );
  38.     printf("Hello message sent\n");
  39.     valread = read( sock , buffer, 1024);
  40.     printf("%s\n",buffer );
  41.     if (sprintf(buffer)=="initack@") {
  42.             return true;
  43.         } else {
  44.             return false;
  45.         }
  46. }
  47. WASM_EXPORT
  48. char* sockRead(int bufferSize) {
  49.     char buff[bufferSize]={0};
  50.     valread=read(sock,buff,bufferSize);
  51.     return buff;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement