Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<string.h> //strlen
- #include<sys/socket.h>
- #include<arpa/inet.h> //inet_addr
- #include<unistd.h> //write
- int main(int argc , char *argv[])
- {
- int socket_desc, socket_desc1, client_sock , c , read_size;
- struct sockaddr_in server_recv, server_send , client;
- char client_message[512];
- //Create socket
- socket_desc = socket(AF_INET , SOCK_STREAM , 0);
- if (socket_desc == -1)
- {
- printf("Could not create socket");
- }
- puts("Socket created");
- //Prepare the sockaddr_in structure
- server_recv.sin_family = AF_INET;
- inet_pton(AF_INET, "192.168.0.100", &(server_recv.sin_addr));
- server_recv.sin_port = htons(51000);
- server_send.sin_family = AF_INET;
- inet_pton(AF_INET, "192.168.0.100", &(server_send.sin_addr));
- server_send.sin_port = htons(51500);
- //Bind
- if( bind(socket_desc,(struct sockaddr *)&server_recv , sizeof(server_recv)) < 0)
- { //print the error message
- perror("bind failed. Error");
- return 1;
- }
- puts("bind done");
- if( bind(socket_desc1,(struct sockaddr *)&server_send , sizeof(server_send)) < 0)
- { //print the error message
- perror("bind failed. Error");
- return 1;
- }
- puts("bind done");
- //Listen
- listen(socket_desc , 3);
- listen(socket_desc1 , 3);
- //Accept and incoming connection
- puts("Waiting for incoming connections...");
- c = sizeof(struct sockaddr_in);
- //accept connection from an incoming client
- client_sock = accept(socket_desc, (struct sockaddr *)&client, (socklen_t*)&c);
- if (client_sock < 0)
- { perror("accept failed");
- return 1;
- }
- puts("Connection accepted");
- //Receive a message from client
- while( (read_size = recv(client_sock , client_message , 512 , 0)) > 0 )
- {
- //Send the message back to client
- write(client_sock , client_message , strlen(client_message));
- }
- if(read_size == 0)
- {
- puts("Client disconnected");
- fflush(stdout);
- }
- else if(read_size == -1)
- {
- perror("recv failed");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement