package server;
/**
*<p>
* * Copyright (C),2007
* by huanghao
* Desctiptoin: 网络游鱼服务器端
* </p>
*
*/
import java.io.*;
import java.net.*;
import java.util.*;
public class FishServer {
Transmitter transmit;
public FishServer()
{
transmit = new Transmitter();
//创建4446端口的广播套接字
try{
MulticastSocket socket=new MulticastSocket(5004);
InetAddress address;
//客户信息列表
//得到230.0.0.1的地址信息
try{
address=InetAddress.getByName("230.0.0.1");
//使用joinGroup()将多播套接字绑定到地址上
socket.joinGroup(address);
}catch(UnknownHostException e)
{e.printStackTrace();}
DatagramPacket packet;
boolean bn = true;
System.out.println("begin recieve message");
while(bn){
byte[] buf=new byte[7];
int i;
/***********************************************
* 接收来在客户端的请求连接消息
**********************************************/
packet=new DatagramPacket(buf,buf.length);
socket.receive(packet); //接收
String received = new String(packet.getData());
InetAddress inet = packet.getAddress();
String addr = inet.getHostAddress();
int port = packet.getPort();
for(i = 0;i < ClientList.list.size();i++)
{
ClientInfo clientinfo = (ClientInfo)ClientList.list.get(i);
if(clientinfo.address.equals(addr))
//System.out.println("same to :"+i);
break;
}
if(received.equals("request"))
{
//如果该客户端还不在客户信息表中,则将其加入可续信息表
if(i >= ClientList.list.size())
{
ClientInfo client_info = new ClientInfo(addr,port,new Date().toString());
ClientList.list.add(client_info);
System.out.println("link apply from:"+addr+":"+port);
/***********************************************
* 向客户端回执消息
**********************************************/
String msg = "connect";
buf = msg.getBytes();
packet = new DatagramPacket(buf,buf.length,inet,port);
socket.send(packet);
}
}
else if(received.equals("cutlink"))
{
if(i < ClientList.list.size())
{
ClientList.list.remove(i);
System.out.println("\""+received+"\" message from:"+addr+":"+port);
/***********************************************
* 向客户端回执消息
**********************************************/
String msg = "cutlink";
buf = msg.getBytes();
packet = new DatagramPacket(buf,buf.length,inet,port);
socket.send(packet);
}
}
System.out.println("client list now:");
for(i = 0;i < ClientList.list.size();i++)
{
ClientInfo clientinfo = (ClientInfo)ClientList.list.get(i);
System.out.println("address:"+clientinfo.address+" port:"+clientinfo.port);
}
}
//把广播套接字从地址上解除绑定
socket.close(); //关闭广播套接字
}catch(IOException e)
{e.printStackTrace();}
}
public static void main(String args[]) throws IOException
{
new FishServer();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
java网络游鱼(源代码)
共44个文件
class:16个
java:15个
gif:8个
4星 · 超过85%的资源 需积分: 10 19 下载量 131 浏览量
2011-05-10
00:01:08
上传
评论 2
收藏 235KB ZIP 举报
温馨提示
随着网络通信技术、图像处理技术以及多媒体技术的发展,越来越多的用户喜欢通过多媒体来进行各项娱乐游戏。为了满足用户的需求,本系统实现在多台计算机的多个屏幕上显示出一条鱼游动的整个动画,即一条鱼从计算机的一个屏幕慢慢地游动到另一个屏幕上。
资源推荐
资源详情
资源评论
收起资源包目录
java网络游鱼.zip (44个子文件)
ch04
src
client
MusicPlay.java 1KB
Sender.java 2KB
MultiCast.java 2KB
SwimFish.java 4KB
Receiver.java 1KB
NetState.java 94B
AboutDialog.java 1KB
FishClient.java 1019B
FishPanel.java 4KB
Fish.java 4KB
server
ClientList.java 136B
Transmitter.java 3KB
ClientInfo.java 533B
FishServer.java 4KB
fishinfo
FishInfo.java 799B
bin
client
AboutDialog.class 2KB
AboutDialog$WindowCloser.class 677B
Receiver.class 2KB
SwimFish.class 3KB
FishClient.class 1KB
Sender.class 2KB
FishPanel.class 4KB
NetState.class 363B
MultiCast.class 2KB
Fish.class 3KB
MusicPlay.class 1KB
server
Transmitter.class 3KB
ClientInfo.class 971B
ClientList.class 422B
FishServer.class 3KB
fishinfo
FishInfo.class 623B
.classpath 232B
.project 380B
sound
bubble0.wav 220KB
bubble1.wav 45KB
pics
fish04.gif 2KB
fish01.gif 3KB
fish00.gif 3KB
fish03.gif 3KB
sea2.jpg 77KB
fish05.gif 2KB
fish07.gif 2KB
fish06.gif 2KB
fish02.gif 3KB
共 44 条
- 1
资源评论
- liugang12344552013-09-14有BUG,但看着还不错
- JinShuiHuPan2013-02-26刚下开,对我有用,但好像有bug,有待测试
java爱好者
- 粉丝: 698
- 资源: 149
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功