Showing posts with label Network/Distributed Programing. Show all posts
Showing posts with label Network/Distributed Programing. Show all posts

Wednesday, 9 October 2013

Client Server Chat application with multithreading in C

Server.c


#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <time.h>
#include <pthread.h>
#include <string.h>
int sockfd, newsockfd, portno, clilen,newsockfd1;
char buffer[256],buff[255];
struct sockaddr_in serv_addr, cli_addr;
int n,f,b;
int main( int argc, char *argv[] )
{

// time_t   now;
  //   struct tm *ts;
// now = time(0);
// ts = localtime(&now);

// strftime(buff, sizeof(buff), "%a %Y-%m-%d %H:%M:%S %Z", ts);
// printf("%s\n", buff);
/* First call to socket() function */
sockfd = socket(AF_INET, SOCK_STREAM, 0);

/* Initialize socket structure */
bzero((char *) &serv_addr, sizeof(serv_addr));
portno = 5001;
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = INADDR_ANY;
serv_addr.sin_port = htons(portno);




/* Now bind the host address using bind() call.*/

bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr));

/* Now start listening for the clients, here process will * go in sleep mode and will wait for the incoming connection */
listen(sockfd,5);
clilen = sizeof(cli_addr);


/* Accept actual connection from the client */
newsockfd = accept(sockfd, (struct sockaddr *)&cli_addr, &clilen);
newsockfd1=newsockfd;


/* If connection is established then start communicating */

//printf("Reply For Client : Please enter the message: ");
//fgets(buffer,255,stdin);
pid_t p;
p=fork();
if(p>0)
{
while(1==1){
n = read(newsockfd,buffer,255 );
printf("%s",buffer);
bzero(buffer,256);
}
}
else
{
while(1==1){
fgets(buff,255,stdin);

//n = write(newsockfd,buffer,255);
n = write (newsockfd,buff,255);
bzero(buff,256);}
}


return 0;
}



Client.c
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <string.h>
int sockfd, portno, n,b;
struct sockaddr_in serv_addr;
//struct hostent *server;
char buffer[256],buff[256];

int main(int argc, char *argv[])
{
if (argc < 3)
{
fprintf(stderr,"usage %s hostname port\n", argv[0]);
return 0;
}
portno = atoi(argv[2]);

/* Create a socket point */
sockfd = socket(AF_INET, SOCK_STREAM, 0);

bzero((char *) &serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(portno);
inet_pton(AF_INET,argv[1],&serv_addr.sin_addr);



/* Now connect to the server */
connect(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr));

/* Now ask for a message from the user, this message * will be read by server */
pid_t p;
p=fork();
if(p>0){
while(1==1)
{
// printf("");
bzero(buffer,256);
fgets(buffer,255,stdin);

/* Send message to the server */
n = write(sockfd,buffer,255);
}
}
else
{
while(1==1){
/* Now read server response */
n = read(sockfd,buff,255);
printf("%s",buff);
bzero(buff,256);
}}
return 0;
}


Input Search:
  • Client Server Multithreading
  • Multithreading Socket Programing in C
  • Client  Server Socket Programing
  • Client Server Multithreading Socket Programming.

Friday, 29 March 2013

JAVA Chat Application with Multithreading

Server Part:


import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;

/**
 *
 * @author nishant
 */
public class Server {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
     
     
        try
{
final int PORT = 6677;
ServerSocket server = new ServerSocket(PORT);
System.out.println("Waiting for clients...");

while (true)
{
Socket s = server.accept();

System.out.println("Client connected from " + s.getLocalAddress().getHostName());

Client chat1 = new Client(s,1);
                                Client chat2 =new Client(s,2);
Thread t1 = new Thread(chat1);
                                Thread t2 =new Thread(chat2);
t1.start();
                                t2.start();
}
}
catch (Exception e)
{
System.out.println("An error occured.");
e.printStackTrace();
}
    }
}
 class Client implements Runnable{

private Socket socket;
int id;
public Client(Socket s,int pid)

        {
            id=pid;
socket = s;
}

@Override
public void run()
{
try
{
Scanner chat = new Scanner(System.in);
Scanner in = new Scanner(socket.getInputStream());
PrintWriter out = new PrintWriter(socket.getOutputStream());

while (true)
{
                            if(id==1)
                            {
String input = chat.nextLine();
out.println(input);
out.flush();
                            }
                            if(id==2)
                            {
if(in.hasNext())
System.out.println(in.nextLine());
                            }
}
}
catch (Exception e)
{
e.printStackTrace();
}
}

}



Client Part:

import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;

/**
 *
 * @author nishant
 */
public class Client {
    private final static int PORT = 6677;
private final static String HOST = "localhost";

public static void main(String[] args) throws IOException
{
try
{

Socket s = new Socket(HOST, PORT);

System.out.println("You connected to " + HOST);

Clients client = new Clients(s,1);
Clients clients =new Clients(s,2);
Thread t1 = new Thread(client);
                        Thread t2 =new Thread(clients);
t1.start();
t2.start();
}
catch (Exception noServer)
{
System.out.println("The server might not be up at this time.");
System.out.println("Please try again later.");
}
}
}
 class Clients implements Runnable {

private Socket socket;
int id;
public Clients(Socket s,int pid)
{
socket = s;
                id=pid;
}


public void run()
{
try
{
Scanner chat = new Scanner(System.in);
Scanner in = new Scanner(socket.getInputStream());
PrintWriter out = new PrintWriter(socket.getOutputStream());

while (true)
{
                            if(id==1)
                            {
String input = chat.nextLine();
out.println(input);
out.flush();
                            }
                            if(id==2)
                            {
if(in.hasNext())
System.out.println(in.nextLine());
                            }
}
}
catch (Exception e)
{
e.printStackTrace();
}
}

}

Monday, 4 March 2013

Simple Code to create you own chat messenger for LAN

Simple Code to create you own chat messenger for LAN

Step 1: open CMD
Step 2: write edit msg.bat
Step 3: add following code in file & save it.
@echo off
:A
echo Messenger
set /P n=User/IP:
set /P m=Message:
msg %n% %m%
pause
goto A

Step 4: Run this msg.bat file.