Speaker
/**
* @(#)broadcastSpeaker.java
*
*
* @author
* @version 1.00 2010/5/13
*/
import java.net.*;
import java.io.*;
public class broadcastSpeaker {
static String iaddr;
static int port;
int messageout;
public broadcastSpeaker() {
try{
System.out.println("Connecting...");
Socket socket=new Socket(InetAddress.getByName(iaddr),port);
System.out.println("Connect successfull !");
DataOutputStream ost=new DataOutputStream(socket.getOutputStream());
InputStreamReader ist=new InputStreamReader(System.in);
BufferedReader br =new BufferedReader(ist);
System.out.println("please inpout information:");
while(true){
messageout=br.read();
ost.writeInt(messageout);
}
}
catch(IOException e){
e.printStackTrace();
}
}
public static void main(String args[]){
if(args.length<2){
System.out.println("Usage : java broadcastSpeaker [iaddr] [port]");
System.exit(1);
}
port=Integer.parseInt(args[1]);
iaddr=args[0];
new broadcastSpeaker();
}
}
Server
/**
* @(#)broadcastServer.java
*
*
* @author
* @version 1.00 2010/5/13
*/
import java.net.*;
import java.io.*;
import java.util.*;
public class broadcastServer {
private static ServerSocket SS;
private static int port;
Socket socket;
private Hashtable ht = new Hashtable();
public broadcastServer() {
try{
SS=new ServerSocket(port);
System.out.println("Server is created and waiting client to connect...");
while(true){
socket=SS.accept();
System.out.println("Client IP="+socket.getInetAddress().getHostAddress());
DataOutputStream ost = new DataOutputStream(socket.getOutputStream());
ht.put(socket,ost);
Thread thread=new Thread(new ServerRunnable(socket,ht));
thread.start();
}
}
catch(IOException e) {
e.printStackTrace();
}
}
public static void main(String args[]){
if(args.length<1){
System.out.println("Usage:java Server1 [port]");
System.exit(1);
}
port=Integer.parseInt(args[0]);
new broadcastServer();
}
}
class ServerRunnable implements Runnable {
private Socket socket;
private Hashtable ht;
public ServerRunnable(Socket socket,Hashtable ht){
this.socket=socket;
this.ht=ht;
}
public void run(){
DataInputStream ist;
try{
ist=new DataInputStream(socket.getInputStream());
while(true){
int messagein=ist.readInt();
synchronized(ht){
Enumeration en=ht.elements();
while(en.hasMoreElements()){
DataOutputStream ost=(DataOutputStream)en.nextElement();
ost.writeInt(messagein);
}
}
}
}
catch(IOException e){
//e.printStackTrace();
}
finally {
synchronized (ht){
System.out.println("Rmove connection:"+socket);
ht.remove(socket);
try{
socket.close();
}
catch(IOException e){
e.printStackTrace();
}
}
}
}
}
Receiver
/**
* @(#)broadcastReceiver.java
*
*
* @author
* @version 1.00 2010/5/13
*/
import java.net.*;
import java.io.*;
public class broadcastReceiver {
static int port;
static String iaddr;
int messagein;
Socket socket;
public broadcastReceiver() {
try{
System.out.println("Connecting...");
socket=new Socket(InetAddress.getByName(iaddr),port);
System.out.println("Connect successfull !");
DataInputStream ist=new DataInputStream(socket.getInputStream());
while(true){
messagein=ist.readInt();
System.out.print((char)messagein);
}
}
catch(IOException e){
e.printStackTrace();
}
}
public static void main(String args[]){
if(args.length<2){
System.out.println("Usage : java broadcastReceiver [iaddr] [port]");
System.exit(1);
}
port=Integer.parseInt(args[1]);
iaddr=args[0];
new broadcastReceiver();
}
}