- 浏览: 913233 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
wangzhen199009:
good. Thx for your sharing.
REST和认证 HMAC -
jsshizhan:
你的这个SQL有问题的
数据库中如何使用SQL查询连续数字并且统计连续个数 -
maoghj:
dddddddddddddd
mysql 更改my.cnf 慢查询日志 -
zhoutong123a:
人的贪婪无止境,只能控制,不能满足
招人心得 -
xuerThinkVickie:
...
ZeroClipboard支持IE,firefox,Chrome复制到剪贴板
http://www.360doc.com/content/070528/16/11586_525660.html
FLASH + JAVA 开发实时网络游戏[编程基础篇] with Socket API
(彩色狐狸【ColorFox、changsir】 : changsir@163.com QQ: 146646)
本文只要分两部分:FLASH编程 和 Java编程,此文记录的仅仅是我在探索中的一些收获,
其中用了很多个人化的描述语言,并不是业界标准的用语。 :)
探索笔记:
目前国内Flash应用大部分还是在制作精美的动画方面,但据我了解早在Flash4 的时代,国外一些
人就已经开始将flash技术运用于开发动态网站(和php、asp、jsp结合)和开发应用程序(象网络游戏、
远程管理等应用软件)的项目中了。而直到今日,这方面在国内发展还是比较缓慢(有一部分原因是少数
人掌握了关键技术,但不愿意共享出来)。因此,我将致力于推动国内flash技术在开发动态网站和开发应
用程序方面的发展,并将自己亲手写的代码公布到网络中,以便于大家共享、交流。 于2003-10-24
涉及到的知识范畴:
1. socket概念
2. java编程语言
3. Flash MX ActionScript中的XMLSocket
实时网络游戏也属于大型应用程序范畴,一个关键环节就是建立实时主动通信环境(相对的,有个称为被动通
信的方式,最好的例子就是你正在用IE浏览器浏览一个网站,此时浏览器和服务器之间就是被动通信方式:如
果你不点击一个连接,发送一个WEB页面请求到WEB服务器,WEB服务器是不会主动向你的浏览器发送任何页面
的)。在此Socekt API就成为了首选。限于篇幅,这里不再过多解释socket的含义,只希望大家能记住一点,
只要建立能够实时通信的应用程序就需要建立socket连接。
【 FLASH编程部分 】
从mx自带的as字典中可以看出,Flash在网络通信方面得到了非常大的加强。
“The XMLSocket object is useful for client-server applications
that require low latency, such as real-time chat systems”
注意最后的一小段话:such as real-time chat systems(译文:例如实时聊天系统)
通过调用XMLSocket方法FLASH就可以和一些由强大语言编写的服务器应用程序进行
通信,进而开发出各种实时信息交流系统。所以我们的目标锁定在XMLSocket!
另外值得注意的是:有很多人一看到XMLSocket前面的XML三个字母,就觉得头疼,
以为必须先熟悉甚至精通XML才能使用这个对象及其方法,但我要说的是在你不太了解
XML的阶段,只要把XML信息看成是一个随意长度(>0)的字符串,把XMLSocket看成是一个只是
用来发送字符串数据的对象就好办多了。
我们还是从分析代码着手,来跨进开发FLASH实时网络游戏的大门吧:
//建立XMLSocket对象
var mySocket = new XMLSocket();
mySocket.connect("127.0.0.1",3000);
//========== 测试建立socket连接是否成功 ==========================
mySocket.onConnect = function(success)
{
if(success)
{
_root.ifconnectok = "ok";
trace("connect ok");
}
else
{
_root.ifconnectok = "failed";
trace("connect failed");
}
}
//====== End for 测试是否连接成功 =============================
//成功建立连接后 向服务器端发送一个测试用的字符串,以便服务器端能显示出信息。
mySocket.send("this is a testing String !!!");
FLASH中的程序就先到此,因为是基础篇,所以不会涉及太多的其他东西,呵呵。
【 java程序部分 】
import java.io.*;
import java.net.*;
public class LocalServer
{
protected int listenPort = 3000;
public void acceptConnections()
{
try
{
ServerSocket server = new ServerSocket(this.listenPort);//同客户机的Socket对应,在服务器端,我们需要ServerSocket对象,参数是兼听的端口号
Socket incomingConnection = null;//创建一个客户端的Socket变量,以接收从客户端监听到的Socket
handleConnection处理
System.out.println("Server端正在等待一个socket连接......");
incomingConnection = server.accept();//调用该 ServerSocket 的 accept() 来告诉它开始侦听
System.out.println("一个socket客户端已经连接过来......");
handleConnection(incomingConnection);
} catch (BindException e) {
System.out.println("Unable to bind to port " + listenPort);
} catch (IOException e) {
System.out.println("Unable to instantiate a ServerSocket on port: " + listenPort);
}
}
public void handleConnection(Socket incomingConnection)
{
System.out.println("\r正在对此连接进行处理......");
try
{
//首先获取同Socket相关联的流outputToSocket和InputStream
//其中outputToSocket是要返回给客户端Socket的流
//InputStream是客户端发来的请求,在这里就是文件路径,即"RemoteFile.txt"
OutputStream outputToSocket = incomingConnection.getOutputStream();
InputStream inputFromSocket = incomingConnection.getInputStream();
BufferedReader streamReader = new BufferedReader(new InputStreamReader(inputFromSocket)); //首先要将InputStream转换到BufferedReader中
String line = null;
while ((line = streamReader.readLine()) != null)
{
System.out.println(line); //从streamReader中读出文件信息,直接输出到默认输出设备中(本例中是指dos窗口)
}
System.out.println("\r\r接受信息完毕!");
//完成之后关闭所有流,注意关闭Socket流的顺序
streamReader.close();
} catch (Exception e) {
System.out.println("Error handling a client: " + e);
}
}
//主程序,建立sever实例对象,然后运行对象的acceptConnections()方法
public static void main(String[] args) {
LocalServer server = new LocalServer();
server.acceptConnections();
}
}
java服务端程序就到此为止了,此时已经能够建立起一个最简单的C/S结构通信体系。
在此基础上再增加适当的东西 就能够开发出任何应用程序或者网络游戏。
##### 所要源码请发信到changsir@163.com 并在来信开头著名[网络游戏源码] #######
##### 下次想写一点FLASH+JSP+SqlServer 开发论坛的文章,希望大家多多与我交流 #####
--------------------------------------------------------------------------------
俺最近也在关注这方面的内容,可惜俺是用php的,mark先
--------------------------------------------------------------------------------
呵呵,Flash只是实现一个界面,真正的功能都是靠java、ASP、PHP、JSP等等这些技术实现的,
Flash只是一个壳子,现在讨论的也是外部壳子与内部功能的联接方法,说穿了也没什么难的,重点是在内部功能实现这一块,真要探讨一点深入的东西还是得精通java、ASP、PHP、JSP等等这些技术
--------------------------------------------------------------------------------
不是说少部分人不愿意共享导致了发展缓慢,而是大部分学flash的人都不太了解java、ASP、PHP、JSP,达不到那个水平,
像楼主这样的全才很少,听课,学习!
--------------------------------------------------------------------------------
两手到要硬,少不了的
--------------------------------------------------------------------------------
php的socket server部分(手册上搞来的) :
<?php
error_reporting (E_ALL);
/* Allow the script to hang around waiting for connections. */
set_time_limit (0);
/* Turn on implicit output flushing so we see what we're getting
* as it comes in. */
ob_implicit_flush ();
$address = '127.0.0.1';
$port = 3000;
if (($sock = socket_create(AF_INET, SOCK_STREAM, 0)) === false)
{
echo "socket_create() failed: reason: " . socket_strerror($sock) . "";
}
if (($ret = socket_bind($sock, $address, $port)) === false)
{
echo "socket_bind() failed: reason: " . socket_strerror($ret) . "";
}
if (($ret = socket_listen($sock, 10)) === false)
{
echo "socket_listen() failed: reason: " . socket_strerror($ret) . "";
}
do
{
if (($msgsock = socket_accept($sock)) === false)
{
echo "socket_accept() failed: reason: " . socket_strerror($msgsock) . "";
break;
}
/* Send instructions. */
$msg = " Welcome to the PHP Test Server. \r" .
"To quit, type 'quit'. To shut down the server type 'shutdown'.\r";
socket_write($msgsock, $msg, strlen($msg));
$cmd = "";
do {
if (false === ($buf = socket_read($msgsock, 4096)))
{
echo "socket_read() failed: reason: " . socket_strerror($ret) . "";
break 2;
}
if ($buf == "\r")
{
if ($cmd == 'm00')
{
socket_write($msgsock, "PHP replies: Must be a cow out there...\r", strlen ("PHP replies: Must be a cow out there... "));
}
if ($cmd == 'quit')
{
socket_write($msgsock, "\rClosing connection ...", strlen (" Closing connection ..."));
break;
}
if ($cmd == 'shutdown')
{
socket_write($msgsock, "\rShutdown initiated...", strlen (" Shutdown initiated..."));
socket_close ($msgsock);
break 2;
}
$cmd = "";
}
else
{
$cmd .= $buf;
//echo($cmd);
}
} while (true);
socket_close ($msgsock);
} while (true);
socket_close ($sock);
?>
测试ok
--------------------------------------------------------------------------------
而现在看到的FLASH+ASP比较多一点吧..象国外的网站很多都已经做到这一点了.可是在国内的确很少.
我觉得在国内这些东西的教程还是太少了.我想找也非得上外国网,可是全是E文,只是猜.唉.觉得太慢了..有机会大家学习一下.
--------------------------------------------------------------------------------
changbird (彩色狐狸)
老兄,不错,好文章,我喜欢。
希望,多多宜善啊。
--------------------------------------------------------------------------------
研究中,UP
--------------------------------------------------------------------------------
不好意思 今天上来晚了 呵呵 主要是公司的网太破! 全层居然用一个adsl!(我$%@^@&*@)
我发帖子的目的主要有下面几个:
(1)最重要的就是抛砖引玉,启发一下想在这方面做出尝试的朋友
(2)想看看有多少人有兴趣
(3)找到一些志同道合的人 :)
to mindsky(新花泽类) :完全同意你的观点
to:SEASKYLONG(☆特☆) : 我会多写一些研究的心得出来,供大家参考,比如用flash+asp写论坛、FLASH+java开发实时网络游戏、FLASH+jsp或者PHP做的全站程序。 :)同时公布我的全代码
to volca() :感谢你能共享php方面的东西 :)
欢迎大家继续讨论!!!!
--------------------------------------------------------------------------------
高手啊
--------------------------------------------------------------------------------
顶一下
--------------------------------------------------------------------------------
特别想学网络flash游戏的编写
--------------------------------------------------------------------------------
现在ColdFusion出来了,有没有人想过或正在研究FLash+ColdFusion,岂不更爽?
我就正在作一个这个搭配的网络游戏.不是很大型,但是,就目前来看,(可能是Flash+ASP等的技术参考较少),ASP等+Flash的方案,好像问题还不少.最主要是安全性.
我想ColdFusion+Flash才真的叫匹配!这样,开发大型应用,有CF最后台,就更爽了.
--------------------------------------------------------------------------------
网络的应用分为mvc,"界面”--“逻辑”--“控制”,
flash只是一个外客,可以把页面做得好看,要做大还得把后台应用处理做好才可以。
前段用 ie中的网页,flash,或一个客户段意义不大(不过国外结合很好,做出来好看又好用也不错)。(我个人感觉flash就象一个c/s模式的客户段,不过只是被ie集成了)
--------------------------------------------------------------------------------
现在2k4对后台数据库的支持很好啊,flash连数据库是越来越方便了啊!
--------------------------------------------------------------------------------
我以前也有这方面的想法,但现在......
--------------------------------------------------------------------------------
前段时间也花了点时间研究ASP+FLASH,不过没办法编程基础太差,只能实现一些小型的数据读写,如果想结合flash的动态界面效果做出真正好的系统出来,语言基础是必要的,当然精通一种语言是最基本的,至于flash的界面设计完全属于视觉范畴,两方面要结合得很好的话,团队合作才是更好的方式。
--------------------------------------------------------------------------------
很好的文章,我就把它置顶,欢迎大家都来看看
--------------------------------------------------------------------------------
好啊。。
大家勇跃点啦
--------------------------------------------------------------------------------
我觉得Flash不仅仅是外壳,就象我们在做网页的时候经常要用到Javascript,但Javascript不仅仅只是用来做界面效果的,它还有更强大的数据处理功能,Flash也一样,他可以提供更强大的客户端服务,然后再与服务器进行数据通信。当然我觉得,Flash开发网络应用时,安全问题也是要考虑的,我觉得Flash本身很难加强安全性,这也只可以在服务器上加强了。
--------------------------------------------------------------------------------
我是Flash2004+C# Socket的,MSN coolthor@msn.com
--------------------------------------------------------------------------------
其实这些flash结合php jsp asp的书籍资料还是不少的!
我就有幸得到一本flash+php开发指南的书!清华大学出版社!
不过好像是外国人写的国人翻译的而已!
我学的是asp+flash,参考了一下这本书 感觉受益匪浅!
--------------------------------------------------------------------------------
国人真的比不上老外吗?我想不是,就像黑客与我们一样,只是他们掌握了一些我们所还不了解的知识,这也如此,我正在策划一网络游戏,而且用的就是FLASH +ASP,这个游戏主要是反映网络人生活的,当然由于一些原因,我现在还不能说得很多,我希望通过此论坛能让国人的FLASH水平更上一个台阶,在我看来,用FLASH开发软件觉不会比其他的编程语言差!
--------------------------------------------------------------------------------
我同意楼上的;
我们要加油哦~
--------------------------------------------------------------------------------
好,期待。。。
--------------------------------------------------------------------------------
FLASH+JAVA有搞头没?
我有FALSH一年专业经验,JAVA两年专业经验
放在一起没搞过
请问一起搞在北京值几个钱?
有专搞JAVA吃香么
--------------------------------------------------------------------------------
上边的朋友。。不要总想着IT="挨踢"
贴主在这里提出的是一种思想和理论。。
我赞同贴主的观点。。而且flash+后台服务器是很好的选择。
不过建议贴主,能够把。。实现网络多线程的贴字贴出来。。完善上边的服务器功能。
--------------------------------------------------------------------------------
好贴
--------------------------------------------------------------------------------
to thornet(THOR) :
I'm developing in the same environment as yours. ( c# socket server + flash mx 2004)
--------------------------------------------------------------------------------
up
--------------------------------------------------------------------------------
收藏一下
--------------------------------------------------------------------------------
flex
不知道有没有写错
将会在明年出来
到时FLASH与JAVA的结合更紧密
大家应该看到FLASH2004有可以专门建FLASHJSP文件了吧
全力支持楼主!
在闪客帝国也看到类似的文章
不知道哪个是原创
总之受益匪浅
--------------------------------------------------------------------------------
以前做过一个asp图形界面的小game,仿口袋妖怪的,效率太底,放弃了,flash解决图形应该是个不错的选择,关注!!
--------------------------------------------------------------------------------
关注!
--------------------------------------------------------------------------------
这段时间正想着要好好深入学习+研究一下Java应用程序开发,过段时间有点感觉了找楼主好好探讨探讨Flash+Java的深入应用...
--------------------------------------------------------------------------------
好文章
一扇窗
--------------------------------------------------------------------------------
不好意思,最近在赶一j2ee的项目,又好久没来论坛研究啦。
to iamwls(灵鹤): 我觉得现在国内大的形式还没有发展到FLASH与java、C等结合做应用这方面上来,所以搞flash+java 并不能比专搞java赚更多的钱。不过咱们应该做急先锋,带动国内这方面的发展。
to Keng(白朗):首先谢谢理解和支持,呵呵。我在发表这个帖子之后的几天里面,确实写了一套简单的java服务器端程序,基于多线程,不过还没经过优化,会在近期放上来。不过因为这里是讨论flash的板块,所以如果我贴上来java的程序,好像有点文不对题的感觉,呵呵 所以我也有些犹豫。
介绍一下写这套程序的背景:写这套服务器端程序,是因为当时公司要求做一个实时监视公司数据库中数据变化的工具,所以就临时赶做了一个,当然,客户端用的是纯flash。
to jinshiyin(金世饮): 恩,我也看到2004的变化很大了,但由于参加项目的原因,暂时没时间研究,不过希望大家多讨论。 :)另:帝国论坛上的那篇文章也是我本人发的 呵呵,目的都说了,只是希望通过我的帖子,能带动国内这方面的发展,也顺便多结识朋友。 呵呵
to mostro(祥子): 我2年前用flash5+asp帮朋友做过一个纯flash的石器时代的网站,呵呵感觉flash要是仅仅和asp,jsp,php这类web语言结合的话,做实时的东西还是力不从心,比如网络游戏。我还是建议flash+java或C 这类的高级语言编写的应用程序结合。
to reagan0127(reagan):欢迎找我讨论,不过更希望大家都参与进来。 呵呵 人外有人,这里高人很多的哦,我只是按捺不住了蹦出来献丑罢啦。 :)
--------------------------------------------------------------------------------
to mckee(keesprint): 呵呵我发这个帖子就是想捅破这层窗户纸。因为我知道FLASH方面的高手和Java、C方面的高手很多很多,而且也有很多人早就想用FLASH结合Java、 C等做一些东西了,但就是不太了解flash怎么和java、c进行通信。所以只好由小弟来捅一下试试,看看能不能捅破。 ^O^
--------------------------------------------------------------------------------
0恩
我昨晚看的时候就是有种大开眼界的感觉。说来惭愧,做了两年flashmtv(我是侧重于美工那种),我还只是flash爱好者,连熟手都谈不上,学as也只是很皮毛,没什么项目经验,只是在校园里看教程小打小闹那种。我们系的专长是acm比赛比较牛,可是没有我的分,自我感觉flash花了我太大的精力,还见不到什么作为,本来在长期的反省中已经决定以后好好学习,不要把时间花在flash上面了。最近看了加拿大人写的programming macromedia flash mx,又完全改变了我对flash的理解,原来flash的天地有这么广阔的。又见到你的帖子,让我颇有触动,长期以来一直在专业和爱好之间找不到平衡点,或者说理不清关系,我想至少你的帖子没有给我动力,也给了我不要绝望的勇气吧。因为从最粗浅的角度看,能把专业和爱好结合起来是再好不过的吧。
--------------------------------------------------------------------------------
这个东西是我用Flash MX 结合ASP做的,
http://www.pioneer.hutc.zj.cn/new/shenghuo/diary/PubList.asp
做下来之后,觉得收获很多,特别是改变了Flash原来的那种看法,我觉得这样非常有意思,但是对于开发人员的要求也提高了,要有美工,还要懂中软件和语言,而且它们要结合的非常好才可以。
我不知道这个用这种方法网络的前景如何,只是觉得有意思,就去做了现在有.Net,Java如果要去开发网络,我真的不知道何去何从了,到底哪一中会是潮流呢?也许是各分天下吧。
--------------------------------------------------------------------------------
flash mx2004 + c#/vb.net
http://expert.csdn.net/Expert/topic/2517/2517962.xml?temp=.5230524
--------------------------------------------------------------------------------
如果把开发的flash客户端放到web服务器的页面如何实现。和自己开发的后台服务器实时通?
这个问题让我的程序失败了。
--------------------------------------------------------------------------------
你们说的好难懂啊,真想学点,以后也好向你们讨教讨教,觉得你们真的好棒啊!!!!!!
--------------------------------------------------------------------------------
服务器端还是用java吧
看这段代码
http://www.7yue.com/tutorial/mx2004/flash_socket.cfm
--------------------------------------------------------------------------------
flash它发送socketxml的时候是用UTF-8的,我们只要服务器设置UTF-8接受字符就可以了。
--------------------------------------------------------------------------------
向楼主学习。
--------------------------------------------------------------------------------
期待更好的交流:)
--------------------------------------------------------------------------------
用flash做游戏。用的C/S结构,在安全方面要解决。
FLASH在界面方面比我现在的游戏要好做。
这个点子好。
--------------------------------------------------------------------------------
呵呵 我觉得单纯用flash做客户端 安全隐患非常严重哦!
to all: 最近公司的项目结束了,我就有精力开始继续做这个自己的项目啦 嘿嘿
大家一块讨论啊!
--------------------------------------------------------------------------------
虚心学习,希望能在csdn上学到真东西,
msn:perfection_sutra@163.com
QQ:251903260
--------------------------------------------------------------------------------
向楼主学习.......进步、进步、再进步。
http://expert.csdn.net/Expert/topic/2660/2660336.xml?temp=.9975855
--------------------------------------------------------------------------------
mark
--------------------------------------------------------------------------------
up
--------------------------------------------------------------------------------
我也试了一下,服务器端用vc.net编写,客户端的flash用flash player播放时与服务器端通讯良好,但把它嵌入到网页中后就不能与服务器端通讯了,这是为何?
--------------------------------------------------------------------------------
果然是个强帖子,一下子引出了这么多高手
俺也来好好学学啊
好象都懂一点可惜都不精通
--------------------------------------------------------------------------------
致谢!
--------------------------------------------------------------------------------
好东西啊 得好好学习!!高手们多教我们些东西啊!1
--------------------------------------------------------------------------------
看这个游戏,就是java+flash作的。
http://game.focus.cn
--------------------------------------------------------------------------------
XMLSocket
up
--------------------------------------------------------------------------------
谁有C#实现代码么~~?
--------------------------------------------------------------------------------
关注一下。。建议用java或者vc开发用c/c++更加好。服务器可以适应多平台。
其他不多说啦。。我的刚刚做到客户注册部分。。需要下载客户端
--------------------------------------------------------------------------------
请问,大家一般用TCP还是UDP
--------------------------------------------------------------------------------
我用C#写的服务器还有一个聊天室的演示:
http://expert.csdn.net/Expert/TopicView1.asp?id=2817440
--------------------------------------------------------------------------------
你好!
我是刚学FLASH的新手
做的字体流动(由小变大、由左到右)变化时间动画总是颤抖的
请问这是为什么啊 ?
--------------------------------------------------------------------------------
上面中的:
mySocket.onConnect = function(success)
是什么意思?
还有XMLSocket怎么接收java传回来的数据?
--------------------------------------------------------------------------------
大家在开发过程中flash和java这间的字符集解决了没?
--------------------------------------------------------------------------------
请教:flash如何调用C++程序?
lymckm@163.com
--------------------------------------------------------------------------------
继续讨论! 加油 加油!
--------------------------------------------------------------------------------
向给位高手学习!受益匪浅啊!
--------------------------------------------------------------------------------
哦,俺原来想用flash+vb的winsocket。,php俺倒是也会一点。
FLASH + JAVA 开发实时网络游戏[编程基础篇] with Socket API
(彩色狐狸【ColorFox、changsir】 : changsir@163.com QQ: 146646)
本文只要分两部分:FLASH编程 和 Java编程,此文记录的仅仅是我在探索中的一些收获,
其中用了很多个人化的描述语言,并不是业界标准的用语。 :)
探索笔记:
目前国内Flash应用大部分还是在制作精美的动画方面,但据我了解早在Flash4 的时代,国外一些
人就已经开始将flash技术运用于开发动态网站(和php、asp、jsp结合)和开发应用程序(象网络游戏、
远程管理等应用软件)的项目中了。而直到今日,这方面在国内发展还是比较缓慢(有一部分原因是少数
人掌握了关键技术,但不愿意共享出来)。因此,我将致力于推动国内flash技术在开发动态网站和开发应
用程序方面的发展,并将自己亲手写的代码公布到网络中,以便于大家共享、交流。 于2003-10-24
涉及到的知识范畴:
1. socket概念
2. java编程语言
3. Flash MX ActionScript中的XMLSocket
实时网络游戏也属于大型应用程序范畴,一个关键环节就是建立实时主动通信环境(相对的,有个称为被动通
信的方式,最好的例子就是你正在用IE浏览器浏览一个网站,此时浏览器和服务器之间就是被动通信方式:如
果你不点击一个连接,发送一个WEB页面请求到WEB服务器,WEB服务器是不会主动向你的浏览器发送任何页面
的)。在此Socekt API就成为了首选。限于篇幅,这里不再过多解释socket的含义,只希望大家能记住一点,
只要建立能够实时通信的应用程序就需要建立socket连接。
【 FLASH编程部分 】
从mx自带的as字典中可以看出,Flash在网络通信方面得到了非常大的加强。
“The XMLSocket object is useful for client-server applications
that require low latency, such as real-time chat systems”
注意最后的一小段话:such as real-time chat systems(译文:例如实时聊天系统)
通过调用XMLSocket方法FLASH就可以和一些由强大语言编写的服务器应用程序进行
通信,进而开发出各种实时信息交流系统。所以我们的目标锁定在XMLSocket!
另外值得注意的是:有很多人一看到XMLSocket前面的XML三个字母,就觉得头疼,
以为必须先熟悉甚至精通XML才能使用这个对象及其方法,但我要说的是在你不太了解
XML的阶段,只要把XML信息看成是一个随意长度(>0)的字符串,把XMLSocket看成是一个只是
用来发送字符串数据的对象就好办多了。
我们还是从分析代码着手,来跨进开发FLASH实时网络游戏的大门吧:
//建立XMLSocket对象
var mySocket = new XMLSocket();
mySocket.connect("127.0.0.1",3000);
//========== 测试建立socket连接是否成功 ==========================
mySocket.onConnect = function(success)
{
if(success)
{
_root.ifconnectok = "ok";
trace("connect ok");
}
else
{
_root.ifconnectok = "failed";
trace("connect failed");
}
}
//====== End for 测试是否连接成功 =============================
//成功建立连接后 向服务器端发送一个测试用的字符串,以便服务器端能显示出信息。
mySocket.send("this is a testing String !!!");
FLASH中的程序就先到此,因为是基础篇,所以不会涉及太多的其他东西,呵呵。
【 java程序部分 】
import java.io.*;
import java.net.*;
public class LocalServer
{
protected int listenPort = 3000;
public void acceptConnections()
{
try
{
ServerSocket server = new ServerSocket(this.listenPort);//同客户机的Socket对应,在服务器端,我们需要ServerSocket对象,参数是兼听的端口号
Socket incomingConnection = null;//创建一个客户端的Socket变量,以接收从客户端监听到的Socket
handleConnection处理
System.out.println("Server端正在等待一个socket连接......");
incomingConnection = server.accept();//调用该 ServerSocket 的 accept() 来告诉它开始侦听
System.out.println("一个socket客户端已经连接过来......");
handleConnection(incomingConnection);
} catch (BindException e) {
System.out.println("Unable to bind to port " + listenPort);
} catch (IOException e) {
System.out.println("Unable to instantiate a ServerSocket on port: " + listenPort);
}
}
public void handleConnection(Socket incomingConnection)
{
System.out.println("\r正在对此连接进行处理......");
try
{
//首先获取同Socket相关联的流outputToSocket和InputStream
//其中outputToSocket是要返回给客户端Socket的流
//InputStream是客户端发来的请求,在这里就是文件路径,即"RemoteFile.txt"
OutputStream outputToSocket = incomingConnection.getOutputStream();
InputStream inputFromSocket = incomingConnection.getInputStream();
BufferedReader streamReader = new BufferedReader(new InputStreamReader(inputFromSocket)); //首先要将InputStream转换到BufferedReader中
String line = null;
while ((line = streamReader.readLine()) != null)
{
System.out.println(line); //从streamReader中读出文件信息,直接输出到默认输出设备中(本例中是指dos窗口)
}
System.out.println("\r\r接受信息完毕!");
//完成之后关闭所有流,注意关闭Socket流的顺序
streamReader.close();
} catch (Exception e) {
System.out.println("Error handling a client: " + e);
}
}
//主程序,建立sever实例对象,然后运行对象的acceptConnections()方法
public static void main(String[] args) {
LocalServer server = new LocalServer();
server.acceptConnections();
}
}
java服务端程序就到此为止了,此时已经能够建立起一个最简单的C/S结构通信体系。
在此基础上再增加适当的东西 就能够开发出任何应用程序或者网络游戏。
##### 所要源码请发信到changsir@163.com 并在来信开头著名[网络游戏源码] #######
##### 下次想写一点FLASH+JSP+SqlServer 开发论坛的文章,希望大家多多与我交流 #####
--------------------------------------------------------------------------------
俺最近也在关注这方面的内容,可惜俺是用php的,mark先
--------------------------------------------------------------------------------
呵呵,Flash只是实现一个界面,真正的功能都是靠java、ASP、PHP、JSP等等这些技术实现的,
Flash只是一个壳子,现在讨论的也是外部壳子与内部功能的联接方法,说穿了也没什么难的,重点是在内部功能实现这一块,真要探讨一点深入的东西还是得精通java、ASP、PHP、JSP等等这些技术
--------------------------------------------------------------------------------
不是说少部分人不愿意共享导致了发展缓慢,而是大部分学flash的人都不太了解java、ASP、PHP、JSP,达不到那个水平,
像楼主这样的全才很少,听课,学习!
--------------------------------------------------------------------------------
两手到要硬,少不了的
--------------------------------------------------------------------------------
php的socket server部分(手册上搞来的) :
<?php
error_reporting (E_ALL);
/* Allow the script to hang around waiting for connections. */
set_time_limit (0);
/* Turn on implicit output flushing so we see what we're getting
* as it comes in. */
ob_implicit_flush ();
$address = '127.0.0.1';
$port = 3000;
if (($sock = socket_create(AF_INET, SOCK_STREAM, 0)) === false)
{
echo "socket_create() failed: reason: " . socket_strerror($sock) . "";
}
if (($ret = socket_bind($sock, $address, $port)) === false)
{
echo "socket_bind() failed: reason: " . socket_strerror($ret) . "";
}
if (($ret = socket_listen($sock, 10)) === false)
{
echo "socket_listen() failed: reason: " . socket_strerror($ret) . "";
}
do
{
if (($msgsock = socket_accept($sock)) === false)
{
echo "socket_accept() failed: reason: " . socket_strerror($msgsock) . "";
break;
}
/* Send instructions. */
$msg = " Welcome to the PHP Test Server. \r" .
"To quit, type 'quit'. To shut down the server type 'shutdown'.\r";
socket_write($msgsock, $msg, strlen($msg));
$cmd = "";
do {
if (false === ($buf = socket_read($msgsock, 4096)))
{
echo "socket_read() failed: reason: " . socket_strerror($ret) . "";
break 2;
}
if ($buf == "\r")
{
if ($cmd == 'm00')
{
socket_write($msgsock, "PHP replies: Must be a cow out there...\r", strlen ("PHP replies: Must be a cow out there... "));
}
if ($cmd == 'quit')
{
socket_write($msgsock, "\rClosing connection ...", strlen (" Closing connection ..."));
break;
}
if ($cmd == 'shutdown')
{
socket_write($msgsock, "\rShutdown initiated...", strlen (" Shutdown initiated..."));
socket_close ($msgsock);
break 2;
}
$cmd = "";
}
else
{
$cmd .= $buf;
//echo($cmd);
}
} while (true);
socket_close ($msgsock);
} while (true);
socket_close ($sock);
?>
测试ok
--------------------------------------------------------------------------------
而现在看到的FLASH+ASP比较多一点吧..象国外的网站很多都已经做到这一点了.可是在国内的确很少.
我觉得在国内这些东西的教程还是太少了.我想找也非得上外国网,可是全是E文,只是猜.唉.觉得太慢了..有机会大家学习一下.
--------------------------------------------------------------------------------
changbird (彩色狐狸)
老兄,不错,好文章,我喜欢。
希望,多多宜善啊。
--------------------------------------------------------------------------------
研究中,UP
--------------------------------------------------------------------------------
不好意思 今天上来晚了 呵呵 主要是公司的网太破! 全层居然用一个adsl!(我$%@^@&*@)
我发帖子的目的主要有下面几个:
(1)最重要的就是抛砖引玉,启发一下想在这方面做出尝试的朋友
(2)想看看有多少人有兴趣
(3)找到一些志同道合的人 :)
to mindsky(新花泽类) :完全同意你的观点
to:SEASKYLONG(☆特☆) : 我会多写一些研究的心得出来,供大家参考,比如用flash+asp写论坛、FLASH+java开发实时网络游戏、FLASH+jsp或者PHP做的全站程序。 :)同时公布我的全代码
to volca() :感谢你能共享php方面的东西 :)
欢迎大家继续讨论!!!!
--------------------------------------------------------------------------------
高手啊
--------------------------------------------------------------------------------
顶一下
--------------------------------------------------------------------------------
特别想学网络flash游戏的编写
--------------------------------------------------------------------------------
现在ColdFusion出来了,有没有人想过或正在研究FLash+ColdFusion,岂不更爽?
我就正在作一个这个搭配的网络游戏.不是很大型,但是,就目前来看,(可能是Flash+ASP等的技术参考较少),ASP等+Flash的方案,好像问题还不少.最主要是安全性.
我想ColdFusion+Flash才真的叫匹配!这样,开发大型应用,有CF最后台,就更爽了.
--------------------------------------------------------------------------------
网络的应用分为mvc,"界面”--“逻辑”--“控制”,
flash只是一个外客,可以把页面做得好看,要做大还得把后台应用处理做好才可以。
前段用 ie中的网页,flash,或一个客户段意义不大(不过国外结合很好,做出来好看又好用也不错)。(我个人感觉flash就象一个c/s模式的客户段,不过只是被ie集成了)
--------------------------------------------------------------------------------
现在2k4对后台数据库的支持很好啊,flash连数据库是越来越方便了啊!
--------------------------------------------------------------------------------
我以前也有这方面的想法,但现在......
--------------------------------------------------------------------------------
前段时间也花了点时间研究ASP+FLASH,不过没办法编程基础太差,只能实现一些小型的数据读写,如果想结合flash的动态界面效果做出真正好的系统出来,语言基础是必要的,当然精通一种语言是最基本的,至于flash的界面设计完全属于视觉范畴,两方面要结合得很好的话,团队合作才是更好的方式。
--------------------------------------------------------------------------------
很好的文章,我就把它置顶,欢迎大家都来看看
--------------------------------------------------------------------------------
好啊。。
大家勇跃点啦
--------------------------------------------------------------------------------
我觉得Flash不仅仅是外壳,就象我们在做网页的时候经常要用到Javascript,但Javascript不仅仅只是用来做界面效果的,它还有更强大的数据处理功能,Flash也一样,他可以提供更强大的客户端服务,然后再与服务器进行数据通信。当然我觉得,Flash开发网络应用时,安全问题也是要考虑的,我觉得Flash本身很难加强安全性,这也只可以在服务器上加强了。
--------------------------------------------------------------------------------
我是Flash2004+C# Socket的,MSN coolthor@msn.com
--------------------------------------------------------------------------------
其实这些flash结合php jsp asp的书籍资料还是不少的!
我就有幸得到一本flash+php开发指南的书!清华大学出版社!
不过好像是外国人写的国人翻译的而已!
我学的是asp+flash,参考了一下这本书 感觉受益匪浅!
--------------------------------------------------------------------------------
国人真的比不上老外吗?我想不是,就像黑客与我们一样,只是他们掌握了一些我们所还不了解的知识,这也如此,我正在策划一网络游戏,而且用的就是FLASH +ASP,这个游戏主要是反映网络人生活的,当然由于一些原因,我现在还不能说得很多,我希望通过此论坛能让国人的FLASH水平更上一个台阶,在我看来,用FLASH开发软件觉不会比其他的编程语言差!
--------------------------------------------------------------------------------
我同意楼上的;
我们要加油哦~
--------------------------------------------------------------------------------
好,期待。。。
--------------------------------------------------------------------------------
FLASH+JAVA有搞头没?
我有FALSH一年专业经验,JAVA两年专业经验
放在一起没搞过
请问一起搞在北京值几个钱?
有专搞JAVA吃香么
--------------------------------------------------------------------------------
上边的朋友。。不要总想着IT="挨踢"
贴主在这里提出的是一种思想和理论。。
我赞同贴主的观点。。而且flash+后台服务器是很好的选择。
不过建议贴主,能够把。。实现网络多线程的贴字贴出来。。完善上边的服务器功能。
--------------------------------------------------------------------------------
好贴
--------------------------------------------------------------------------------
to thornet(THOR) :
I'm developing in the same environment as yours. ( c# socket server + flash mx 2004)
--------------------------------------------------------------------------------
up
--------------------------------------------------------------------------------
收藏一下
--------------------------------------------------------------------------------
flex
不知道有没有写错
将会在明年出来
到时FLASH与JAVA的结合更紧密
大家应该看到FLASH2004有可以专门建FLASHJSP文件了吧
全力支持楼主!
在闪客帝国也看到类似的文章
不知道哪个是原创
总之受益匪浅
--------------------------------------------------------------------------------
以前做过一个asp图形界面的小game,仿口袋妖怪的,效率太底,放弃了,flash解决图形应该是个不错的选择,关注!!
--------------------------------------------------------------------------------
关注!
--------------------------------------------------------------------------------
这段时间正想着要好好深入学习+研究一下Java应用程序开发,过段时间有点感觉了找楼主好好探讨探讨Flash+Java的深入应用...
--------------------------------------------------------------------------------
好文章
一扇窗
--------------------------------------------------------------------------------
不好意思,最近在赶一j2ee的项目,又好久没来论坛研究啦。
to iamwls(灵鹤): 我觉得现在国内大的形式还没有发展到FLASH与java、C等结合做应用这方面上来,所以搞flash+java 并不能比专搞java赚更多的钱。不过咱们应该做急先锋,带动国内这方面的发展。
to Keng(白朗):首先谢谢理解和支持,呵呵。我在发表这个帖子之后的几天里面,确实写了一套简单的java服务器端程序,基于多线程,不过还没经过优化,会在近期放上来。不过因为这里是讨论flash的板块,所以如果我贴上来java的程序,好像有点文不对题的感觉,呵呵 所以我也有些犹豫。
介绍一下写这套程序的背景:写这套服务器端程序,是因为当时公司要求做一个实时监视公司数据库中数据变化的工具,所以就临时赶做了一个,当然,客户端用的是纯flash。
to jinshiyin(金世饮): 恩,我也看到2004的变化很大了,但由于参加项目的原因,暂时没时间研究,不过希望大家多讨论。 :)另:帝国论坛上的那篇文章也是我本人发的 呵呵,目的都说了,只是希望通过我的帖子,能带动国内这方面的发展,也顺便多结识朋友。 呵呵
to mostro(祥子): 我2年前用flash5+asp帮朋友做过一个纯flash的石器时代的网站,呵呵感觉flash要是仅仅和asp,jsp,php这类web语言结合的话,做实时的东西还是力不从心,比如网络游戏。我还是建议flash+java或C 这类的高级语言编写的应用程序结合。
to reagan0127(reagan):欢迎找我讨论,不过更希望大家都参与进来。 呵呵 人外有人,这里高人很多的哦,我只是按捺不住了蹦出来献丑罢啦。 :)
--------------------------------------------------------------------------------
to mckee(keesprint): 呵呵我发这个帖子就是想捅破这层窗户纸。因为我知道FLASH方面的高手和Java、C方面的高手很多很多,而且也有很多人早就想用FLASH结合Java、 C等做一些东西了,但就是不太了解flash怎么和java、c进行通信。所以只好由小弟来捅一下试试,看看能不能捅破。 ^O^
--------------------------------------------------------------------------------
0恩
我昨晚看的时候就是有种大开眼界的感觉。说来惭愧,做了两年flashmtv(我是侧重于美工那种),我还只是flash爱好者,连熟手都谈不上,学as也只是很皮毛,没什么项目经验,只是在校园里看教程小打小闹那种。我们系的专长是acm比赛比较牛,可是没有我的分,自我感觉flash花了我太大的精力,还见不到什么作为,本来在长期的反省中已经决定以后好好学习,不要把时间花在flash上面了。最近看了加拿大人写的programming macromedia flash mx,又完全改变了我对flash的理解,原来flash的天地有这么广阔的。又见到你的帖子,让我颇有触动,长期以来一直在专业和爱好之间找不到平衡点,或者说理不清关系,我想至少你的帖子没有给我动力,也给了我不要绝望的勇气吧。因为从最粗浅的角度看,能把专业和爱好结合起来是再好不过的吧。
--------------------------------------------------------------------------------
这个东西是我用Flash MX 结合ASP做的,
http://www.pioneer.hutc.zj.cn/new/shenghuo/diary/PubList.asp
做下来之后,觉得收获很多,特别是改变了Flash原来的那种看法,我觉得这样非常有意思,但是对于开发人员的要求也提高了,要有美工,还要懂中软件和语言,而且它们要结合的非常好才可以。
我不知道这个用这种方法网络的前景如何,只是觉得有意思,就去做了现在有.Net,Java如果要去开发网络,我真的不知道何去何从了,到底哪一中会是潮流呢?也许是各分天下吧。
--------------------------------------------------------------------------------
flash mx2004 + c#/vb.net
http://expert.csdn.net/Expert/topic/2517/2517962.xml?temp=.5230524
--------------------------------------------------------------------------------
如果把开发的flash客户端放到web服务器的页面如何实现。和自己开发的后台服务器实时通?
这个问题让我的程序失败了。
--------------------------------------------------------------------------------
你们说的好难懂啊,真想学点,以后也好向你们讨教讨教,觉得你们真的好棒啊!!!!!!
--------------------------------------------------------------------------------
服务器端还是用java吧
看这段代码
http://www.7yue.com/tutorial/mx2004/flash_socket.cfm
--------------------------------------------------------------------------------
flash它发送socketxml的时候是用UTF-8的,我们只要服务器设置UTF-8接受字符就可以了。
--------------------------------------------------------------------------------
向楼主学习。
--------------------------------------------------------------------------------
期待更好的交流:)
--------------------------------------------------------------------------------
用flash做游戏。用的C/S结构,在安全方面要解决。
FLASH在界面方面比我现在的游戏要好做。
这个点子好。
--------------------------------------------------------------------------------
呵呵 我觉得单纯用flash做客户端 安全隐患非常严重哦!
to all: 最近公司的项目结束了,我就有精力开始继续做这个自己的项目啦 嘿嘿
大家一块讨论啊!
--------------------------------------------------------------------------------
虚心学习,希望能在csdn上学到真东西,
msn:perfection_sutra@163.com
QQ:251903260
--------------------------------------------------------------------------------
向楼主学习.......进步、进步、再进步。
http://expert.csdn.net/Expert/topic/2660/2660336.xml?temp=.9975855
--------------------------------------------------------------------------------
mark
--------------------------------------------------------------------------------
up
--------------------------------------------------------------------------------
我也试了一下,服务器端用vc.net编写,客户端的flash用flash player播放时与服务器端通讯良好,但把它嵌入到网页中后就不能与服务器端通讯了,这是为何?
--------------------------------------------------------------------------------
果然是个强帖子,一下子引出了这么多高手
俺也来好好学学啊
好象都懂一点可惜都不精通
--------------------------------------------------------------------------------
致谢!
--------------------------------------------------------------------------------
好东西啊 得好好学习!!高手们多教我们些东西啊!1
--------------------------------------------------------------------------------
看这个游戏,就是java+flash作的。
http://game.focus.cn
--------------------------------------------------------------------------------
XMLSocket
up
--------------------------------------------------------------------------------
谁有C#实现代码么~~?
--------------------------------------------------------------------------------
关注一下。。建议用java或者vc开发用c/c++更加好。服务器可以适应多平台。
其他不多说啦。。我的刚刚做到客户注册部分。。需要下载客户端
--------------------------------------------------------------------------------
请问,大家一般用TCP还是UDP
--------------------------------------------------------------------------------
我用C#写的服务器还有一个聊天室的演示:
http://expert.csdn.net/Expert/TopicView1.asp?id=2817440
--------------------------------------------------------------------------------
你好!
我是刚学FLASH的新手
做的字体流动(由小变大、由左到右)变化时间动画总是颤抖的
请问这是为什么啊 ?
--------------------------------------------------------------------------------
上面中的:
mySocket.onConnect = function(success)
是什么意思?
还有XMLSocket怎么接收java传回来的数据?
--------------------------------------------------------------------------------
大家在开发过程中flash和java这间的字符集解决了没?
--------------------------------------------------------------------------------
请教:flash如何调用C++程序?
lymckm@163.com
--------------------------------------------------------------------------------
继续讨论! 加油 加油!
--------------------------------------------------------------------------------
向给位高手学习!受益匪浅啊!
--------------------------------------------------------------------------------
哦,俺原来想用flash+vb的winsocket。,php俺倒是也会一点。
相关推荐
Java Socket网络编程是Java平台中的核心特性,它为开发者提供了在TCP/IP协议下创建网络应用的能力。Socket编程主要用于实现客户端和服务器之间的通信,基于客户机/服务器模型。在这个模型中,服务器端通常处于被动...
Java Socket网络编程是Java平台中实现网络通信的核心技术,它基于传输层协议TCP和UDP,为应用程序提供了低级别的、原始的比特流服务。本基础示例将深入探讨这两种协议下的Socket编程。 首先,TCP(Transmission ...
在游戏开发领域,Java是一种广泛应用的编程语言,尤其在构建网络游戏方面,它的跨平台特性和强大的网络支持使其成为理想的选择。本教程旨在指导开发者如何利用Java来创建网络游戏,从基础的C/S(客户端/服务器)架构...
Java网络编程的核心是基于Socket进行通信,Socket是TCP/IP协议栈的一种实现,它允许两个网络节点(通常是客户端和服务器)通过TCP或UDP进行数据交换。Socket接口为应用程序提供了低级别的网络通信控制,允许开发者...
《Java程序设计之网络编程》是一本专注于Java网络编程的教材,它涵盖了网络通信的基础理论以及Java语言在实现网络应用中的各种技术。该资源包括课件和源码,旨在帮助学习者通过实践来深入理解Java网络编程的核心概念...
本项目“基于Java Socket网络编程实现的五子棋游戏,可多人在线玩耍,聊天”正是这种技术的实际应用。 首先,我们来深入理解Java Socket编程。Socket是网络通信中的端点,它允许两台计算机(或者网络上的任何其他...
Java Socket网络编程是Java开发中一个重要...Java Socket编程是构建网络应用的基础,掌握其原理和实践方法对于开发分布式系统、网络服务等至关重要。通过不断实践和学习,开发者可以更熟练地运用Socket来解决实际问题。
Java网络编程主要基于Java的Socket API,该API提供了在TCP/IP协议上建立连接和传输数据的接口。Java.net包下包含Socket和ServerSocket类,分别用于客户端和服务器端的编程。此外,URL和URLConnection类则用于HTTP...
Java网络编程是利用Java语言提供的网络API来实现网络软件开发的技术。在Java中,Socket编程是实现网络通信的基本手段,它允许应用程序之间通过网络进行数据交换。本文将详细探讨Java Socket网络编程中的关键知识点。...
总之,Java网络游戏开发是一个综合性的技术挑战,需要开发者具备扎实的Java基础知识,良好的网络编程能力,以及对游戏设计的理解。通过不断学习和实践,可以开发出引人入胜、稳定可靠的网络游戏。
Socket编程是网络编程的基础,是Java实现网络通信的核心技术。本文将深入探讨Java网络编程和Socket编程的相关知识点。 一、Java网络编程基础 Java网络编程主要涉及TCP/IP协议族,包括TCP(传输控制协议)和UDP...
Java Socket是进行网络通信的基础,它是Java API提供的一种用于实现客户端和服务器之间连接的机制,使得数据能够在两台计算机之间通过网络传输。本教程将详细讲解如何利用Socket进行Java网络编程,实现一个简单的...
在JAVA网络编程基础案例中,我们探讨的是如何利用Java语言进行网络通信,这涉及到一系列的概念和技术。Java网络编程是开发分布式应用的关键部分,它允许程序通过Internet或局域网进行数据传输。 首先,理解网络编程...
《Java 2游戏编程》可能会探讨如何使用Java的Socket编程来实现客户端-服务器通信,处理网络延迟和数据同步问题,让玩家可以在线对战或协作。 最后,本书可能还会涵盖一些游戏设计和项目管理的实践建议,如版本控制...
多人在线游戏需要网络编程技能,Java的Socket编程可以实现客户端和服务器之间的通信,使得玩家能够实时互动。 六、音频处理 Java Sound API允许开发者集成音频资源,播放背景音乐、音效,增强游戏体验。 七、性能...
java的网络编程代码 socket,代码里面有注释
Java Socket 编程是Java语言中用于网络编程的主要技术之一。它允许开发者创建网络应用程序,通过Socket实现客户机/服务器结构的通信。在Java中,Socket编程主要是基于TCP/IP协议的网络编程。 网络编程的两个主要...
在Java平台上开发网络游戏,开发者需要掌握核心的Java编程语言、网络通信技术、多线程处理、图形渲染以及游戏设计原则。以下是一些关键的知识点: 1. **Java编程基础**:首先,你需要熟悉Java的基本语法、数据类型...
标题中的“flash as3/java socket 聊天室”指的是使用Adobe Flash ActionScript 3...开发这样的应用需要理解网络编程、AS3编程和Java SocketAPI的使用。通过学习和实践此类项目,开发者可以提升网络应用开发的能力。