Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int startAsServer(){
- int socket_desc , client_sock , c , read_size;
- struct sockaddr_in server , client;
- char * client_message = (char *) malloc(sizeof(char) * 2000);
- socket_desc = socket(AF_INET , SOCK_STREAM , 0);
- if (socket_desc == -1) {
- printf("Could not create socket");
- }
- puts("Socket created");
- server.sin_family = AF_INET;
- server.sin_addr.s_addr = INADDR_ANY;
- server.sin_port = htons( 8888 );
- if( bind(socket_desc,(struct sockaddr *)&server , sizeof(server)) < 0) {
- perror("bind failed. Error");
- return 1;
- }
- puts("bind done");
- listen(socket_desc , 3);
- puts("Waiting for incoming connections...");
- c = sizeof(struct sockaddr_in);
- while(1) {
- client_sock = accept(socket_desc, (struct sockaddr *)&client, (socklen_t*)&c);
- if (client_sock < 0) {
- perror("accept failed");
- return 1;
- }
- while( (read_size = recv(client_sock , client_message , 2000 , 0) ) > 0 ){
- if(!strcmp(client_message, "halt")){
- return 0;
- } else {
- client_message = processCommand(client_message);
- write(client_sock , client_message , strlen(client_message));
- bzero(client_message, 2000);
- }
- }
- if(read_size == 0){
- puts("Client disconnected");
- fflush(stdout);
- }
- else if(read_size == -1){
- perror("recv failed");
- }
- }
- return 0;
- }
- //starts sending on port 8888
- int startAsClient(){
- int sock;
- struct sockaddr_in server;
- char message[1000] , server_reply[2000];
- sock = socket(AF_INET , SOCK_STREAM , 0);
- if (sock == -1){
- printf("Could not create socket");
- }
- puts("Socket created");
- server.sin_addr.s_addr = inet_addr("127.0.0.1");
- server.sin_family = AF_INET;
- server.sin_port = htons( 8888 );
- if (connect(sock , (struct sockaddr *)&server , sizeof(server)) < 0){
- perror("connect failed. Error");
- return 1;
- }
- puts("Connected\n");
- while(1){
- printf("Enter message : ");
- bzero(message, 1000);
- scanf("%s" , message);
- if(strcmp(message, "quit") == 0){
- return 0;
- }
- if( send(sock , message , strlen(message) , 0) < 0){
- puts("Send failed");
- return 1;
- }
- if(!strcmp(message, "halt")){
- return 0;
- }
- bzero(server_reply, 2000);
- if( recv(sock , server_reply , 2000 , 0) < 0){
- puts("recv failed");
- break;
- }
- puts("Server reply :");
- puts(server_reply);
- }
- close(sock);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement