- 浏览: 577258 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
wzh051527:
我是大四实习生一个,自我感觉技术能力在第三年。。唯一不明白,为 ...
十年技术,不要再迷茫 -
room_bb:
.hrl文件怎么加入到编译规则里面?比如:pp.hrl文件-d ...
Erlang中用的makefile的一点解释 -
吉米家:
感觉帆软报表的flash打印就很不错哇,特别好用
JSP 实现报表打印 -
雪碧爱芬达:
苦逼程序员的辛酸反省与总结 -
mlyjxx:
...
十年技术,不要再迷茫
测试下怎么都可以,发布成exe文件,也没有任何问题,但是以html访问swf的方式连接,却总是连不上,出现Error #2048 的SecurityErrorEvent 错误信息
然后,就在java那头加了接收<policy-file-request/>的代码,但是还是不行,现在我把代码贴上来,请大家帮帮忙
java服务器
RPGServer.javaimport java.net.*;
import java.io.*;
import java.util.*;
public class RPGServer {
private ServerSocket server;
private Boolean serverStop = true;
private RPGManager bMan = new RPGManager();
private int ServerCount = 0;
private HashMap userList = new HashMap();
private HashMap userNameList = new HashMap();
public RPGServer() {
}
void startServer() {
try {
server = new ServerSocket(10000);
System.out.println("RPGServer 建て終わりました");
while (true) {
Socket socket = server.accept();
Chat_Thread chatThread = new Chat_Thread(socket, "socket"
+ ServerCount);
chatThread.start();
userList.put("socket" + ServerCount, chatThread);
bMan.add(socket);
bMan.sendToSocket(socket, "socketId:socket" + (ServerCount++));
bMan.sendClientInfo();
}
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) {
RPGServer server = new RPGServer();
server.startServer();
}
class Chat_Thread extends Thread {
String msg;
Socket socket;
String socketId;
String socketName;
int x;
int y;
private BufferedReader reader;
// private PrintWriter writer;
private BufferedWriter writer;
private String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<cross-domain-policy>" +
"<allow-access-from domain='*' to-ports='*' />" + "</cross-domain-policy>";
Chat_Thread(Socket socket) {
this.socket = socket;
}
Chat_Thread(Socket socket, String socketidvalue) {
this.socket = socket;
this.socketId = socketidvalue;
}
public void run() {
try {
reader = new BufferedReader(new InputStreamReader(socket
.getInputStream(), "utf8"));
writer = new BufferedWriter(new OutputStreamWriter(socket
.getOutputStream(), "UTF-8"));
// writer=new PrintWriter(socket.getOutputStream(),true);
// String msg;
while ((msg = reader.readLine()) != null) {
System.out.println("RPGServer run msg = " + msg + msg.compareTo("<policy-file-request/>"));
if(msg.compareTo("<policy-file-request/>") == 1){
System.out.println("RPGServer run ");
writer.write(xml + "\0");
writer.flush();
}else if (msg.compareTo("stop") == 0) {
System.out.println("stop");
serverStop = false;
server.close();
}
}
} catch (Exception e) {
e.printStackTrace();
System.out.println(e.getMessage());
} finally {
try {
bMan.remove(socket);
if (reader != null)
reader.close();
if (writer != null)
writer.close();
if (socket != null)
socket.close();
reader = null;
writer = null;
socket = null;
userNameList.remove(socketName);
userList.remove(socketId);
bMan.sendToAll("deleteuser:" + socketName);
System.out.println("お客様離れました");
bMan.sendClientInfo();
if (msg.compareTo("stop") == 0) {
System.out.println("stop");
// serverStop = false;
server.close();
}
} catch (Exception e) {
}
}
}
}
}
class RPGManager extends Vector {
RPGManager() {
}
void add(Socket sock) {
System.out.println("add sock : " + sock);
super.add(sock);
}
void remove(Socket sock) {
super.remove(sock);
}
synchronized void sendToSocket(Socket sock, String msg) {
System.out.println("sendToSocket sock : " + sock);
BufferedWriter writer = null;
try {
writer = new BufferedWriter(new OutputStreamWriter(sock
.getOutputStream(), "UTF-8"));
if (writer != null) {
writer.write(msg);
writer.flush();
}
} catch (Exception ie) {
}
}
synchronized void sendToAll(String msg) {
System.out.println("sendToAll run = " + msg);
// PrintWriter writer=null;
BufferedWriter writer = null;
Socket sock;
for (int i = 0; i < size(); i++) {
sock = (Socket) elementAt(i);
try {
writer = new BufferedWriter(new OutputStreamWriter(sock
.getOutputStream(), "UTF-8"));
if (writer != null) {
writer.write(msg);
writer.flush();
}
// writer=new PrintWriter(sock.getOutputStream(),true);
} catch (Exception ie) {
}
}
}
synchronized void sendClientInfo() {
String info = ":今の人数:" + size();
System.out.println(info);
sendToAll(info);
}
}
as方面
public function con():void{
socket=new Socket();
socket.addEventListener(Event.CONNECT,onConnect, false, 0, true);//注册侦听函数
socket.addEventListener( IOErrorEvent.IO_ERROR , failConnect , false, 0, true);
socket.addEventListener(Event.CLOSE,funClose); //监听连接关闭
socket.addEventListener( ProgressEvent.SOCKET_DATA, onSocketData );
socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError, false, 0, true);
//socket.connect("127.0.0.1",10000);//连接Socket服务器
socket.connect("localhost",10000);//连接Socket服务器
}
private function connect():void {
socket.writeUTFBytes("login:" +_player.name + "\n");
socket.flush( );
}
private function funClose(e:Event):void{
_worldTextBox.text =_worldTextBox.text + "\n" +"服务器关闭";
trace("服务器关闭");
}
private function onConnect(e:Event):void{
_worldTextBox.text =_worldTextBox.text + "\n" +"服务器已经连接,正在验证用户";
}
private function failConnect(ev:IOErrorEvent):void{
trace("error");
}
private function onSocketData( event:ProgressEvent ):void {
//trace( "Socket received " + socket.bytesAvailable + " byte(s) of data:" );
_worldTextBox.text =_worldTextBox.text + "\n" + "Socket received " + socket.bytesAvailable + " byte(s) of data:";
while ( socket.bytesAvailable ) {
var string:String = socket.readUTFBytes(socket.bytesAvailable);
_worldTextBox.text =_worldTextBox.text + "\n" + string;
trace( "GameMap onSocketData string : " + string);
}
}
private function onSecurityError(evt:SecurityErrorEvent):void
{
_worldTextBox.text =_worldTextBox.text + "\n" +"安全错误" + evt.toString() + "\n" + evt.text;
}
private function onClosed(evt:Event):void
{
_worldTextBox.text =_worldTextBox.text + "\n" +"服务器关闭";
}
发表评论
-
30个实用的网页设计工具
2013-03-20 09:58 779作为一位网页设计师或开发者,你一直需要搜寻获取强大的网页设计 ... -
java中byte转换int时为何与0xff进行与运算
2011-06-29 19:32 823在剖析该问题前请看如 ... -
BlazeDS集成 Flex+Tomcat开发J2EE模块整合实例
2010-11-18 11:15 2067BlazeDS集成 Flex+Tomcat开发J2EE模块整合 ... -
FckEditor学习笔记
2010-11-15 13:41 9901.Fckeditor官网:http://ckedit ... -
山寨Twitter+桌面IM客户端项目和源码发布
2010-11-13 18:29 1122这个项目是仿Twitter实现,但增加了桌面客户端,即以web ... -
Java读写Excel
2010-11-12 19:24 1163import org.apache.poi.hssf.user ... -
JSP 实现报表打印
2010-11-12 19:23 3609iReport_web开发配置向导- - ... -
Java的MD5加密
2010-11-12 19:20 1062java.security包中提供了现成的一个MD5加密函数, ... -
Jsp中导出Excel报表
2010-11-12 19:19 1412在开发MIS系统的过程中 ... -
避免用户看到异常
2010-11-12 19:16 859尽管Struts框架提供了有效的异常处理机制,但不能保证处理所 ... -
Struts处理中文乱码问题总结
2010-11-12 19:13 809学了很久的java,接触SSH ... -
Eclipse实用快捷键大全
2010-11-12 19:10 703Ctrl+1 快速修复(最经典 ... -
Tomcat配置虚拟目录
2010-11-12 19:09 405配置方法: 1.修改端口:修改Tomcat 5.5\se ... -
设为首页和加入收藏
2010-11-12 19:07 610<INPUT TYPE="button&quo ... -
JSP使用FCKeditor控件
2010-11-12 19:06 2471FCKeditor是一个专门使用在网页上属于开放源代码的所 ... -
junit 单元测试使用方法
2010-11-11 18:58 1017junit 是用来做单元测试,最近项目中可能要需要,所以了 ...
相关推荐
AS400/RPG开发的DDM应用。熟悉AS400RPG开发的朋友,一定熟知DDM应用的关键之处和伟大之处。有极高的参考价值。
java swing开发的2D RPG游戏,支持存档,读档。可以用于研究学习。亲测可使用
用java做的探索解谜RPG游戏,有存档读档功能、双结局、简单的物品栏和剧情,大体使用了MVC模式,有兴趣的小伙伴可以下载一下。
自己花了一个月,游戏简单。这是游戏程序。 另外还有个地图编辑器
java手机游戏程序代码,有关MM找出口的游戏代码
简单的rpg游戏,名字吞天食地,还没制作完整。战斗画面不够精致,剧情还没丰富
Java RPG 开发讲座 对应PPT 。 Java RPG 开发讲座 对应PPT 。
javaRPG游戏 javaRPG游戏
一款JEME写的手机游戏,有LOGO,菜单,人物,地图滚动,场景切换,使用双缓冲技术,方便添加东西
JAVA RPG 游戏 控制上下左右 JAVA RPG 游戏 控制上下左右
AS400,RPG资源AS400,RPG资源AS400,RPG资源AS400,RPG资源AS400,RPG资源AS400,RPG资源
Applying MVC and OO technique, and it is programming design assignment
as/400 rpg 培训资料 as/400 rpg IBM
RPG语言,AS400开发人员使用,希望大家下载。
自己用java开发的一个RPG游戏源文件,计划开发成一个类似DF(矮人要塞)那样的rpg,但是内容以中国风为准。目前达到的1、随机地形生成 2、移动 3、视线算法 4、砍树 5、捡东西 状态改变等,简单功能基本实现。 注...
Java RPG游戏:古代传说开源源代码
java RPG 源码 建筑菜单制作中 自己用来记录开发过程。
Java编写的RPGgame,有基本的攻击与关卡内容,数据可以进行改写有详细的注释
自己的java源码,该版本,简单完成了水流的流动,在进行建筑物的设计。争取10.1,出个可以玩的版本。
RPG开发入门手册.pdf 关于RPG开发的入门教程