java多播实验代码
来源:互联网 发布:网络赚钱团队日赚800 编辑:程序博客网 时间:2024/05/18 08:01
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();
}
}
- java多播实验代码
- udp 广播 和 多播 java 代码
- 多播代码
- CCNP路由实验之十 组播(多播)
- JAVA 单播、多播(组播)、广播
- Java单播、广播、多播(组播)
- 初识java多播
- java多播
- java IP多播
- java多播
- java实验三 实验报告代码
- 组播实验
- Java UDP 单播、多播(组播)、广播、任播(未实现)
- [Java] 实验2参考代码
- [Java] 实验3参考代码
- [Java] 实验4参考代码
- [Java] 实验5参考代码
- [Java] 实验6参考代码
- 用ntfs-3g解决ntfs挂载,以及移动硬盘NTFS分区自动挂载问题
- LINUX下MP3乱码的解决方案
- 如何更改java应用程序标题栏默认图标
- java中鼠标判断左键点击和右键点击
- java-Socket接受中文乱码的解决
- java多播实验代码
- PyDev for Eclipse 简介(1)
- PyDev for Eclipse 简介(2)
- hibernate中hql查询,这里是例子程序,比较完整,忘记时可以对比复习
- PyDev for Eclipse 简介(3)
- Tkinter:Label
- c++ list容器的特性(权哥)
- Tkinter:Button(1)
- VS2012出现“cannot open source file "iostream"”