Python&Flash开发斗兽棋---2.网络基础
2012-04-30 22:21
423 查看
既然是网络对战,首先要解决的是网络通信问题。
我的服务器端用的是Python+nginx,客户端用的是Flash。游戏素材方面的资源通过HTTP,从nginx服务器加载。游戏逻辑控制采用原生态的SOCKET连接,Flash与Python之间通信。
前者没什么好说的,关键在后者。
Python作为服务器端,我使用了一个叫做Twisted的第三方Python库(下载地址:http://pypi.python.org/pypi/Twisted/)。顺便得说一下,Twisted依赖pywin32和zop库(下载地址:http://pypi.python.org/pypi/zope.interface)。
zop安装方法如下
1:先下载并运行一个叫做ez_setup.py的脚本,这个脚本会自动到网上下载相关的安装程序,提示完成后,会在python安装目录的的scripts文件下生成几个exe可执行文件。
2:将zope.interface-3.8.0-py2.7-win-amd64.egg放到{python安装目录}\Scripts下
3:开始->运行->CMD
安装完毕。
然后我们简单测试一下
接下来写一最简单的个socket的服务器:
import os
if os.name!='nt':
from twisted.internet import epollreactor
epollreactor.install()
else:
from twisted.internet import iocpreactor
iocpreactor.install()
from twisted.internet.protocol import Factory,Protocol
from twisted.internet import reactor
class gameSocket(Protocol):
#有新用户连接至服务器
def connectionMade(self):
print 'New Client'
#客户端断开连接
def connectionLost(self,reason):
print 'Lost Client'
#收到客户端发送数据
def dataReceived(self, data):
print 'Get data:' + str(data)
#向该客户端发送数据
self.transport.write('your msg:'+ str(data))
if __name__=='__main__':
f = Factory()
f.protocol = gameSocket
reactor.listenTCP(5200,f)
print 'server started...'
reactor.run()
Fash客户端代码
我们需要准备几个工具:
1.python-2.7.2.amd64.msi
Python 2.7,可以从Python官网下载到
2.pywin32-217.win-amd64-py2.7.exe
Python 2.7Windows开发环境
3.Twisted-12.0.0.win-amd64-py2.7.exe
Python网络编程第三方库,很好用
4.zope.interface-3.8.0-py2.7-win-amd64.egg
Twisted依赖zope包
5.ez_setup.py
在安装zope支持包时需要使用到
参考资料:
用python来开发webgame服务端(1)
用python来开发webgame服务端(2)
用python来开发webgame服务端(3)
用python来开发webgame服务端(4)
用python来开发webgame服务端(5)
我的服务器端用的是Python+nginx,客户端用的是Flash。游戏素材方面的资源通过HTTP,从nginx服务器加载。游戏逻辑控制采用原生态的SOCKET连接,Flash与Python之间通信。
前者没什么好说的,关键在后者。
Python作为服务器端,我使用了一个叫做Twisted的第三方Python库(下载地址:http://pypi.python.org/pypi/Twisted/)。顺便得说一下,Twisted依赖pywin32和zop库(下载地址:http://pypi.python.org/pypi/zope.interface)。
zop安装方法如下
1:先下载并运行一个叫做ez_setup.py的脚本,这个脚本会自动到网上下载相关的安装程序,提示完成后,会在python安装目录的的scripts文件下生成几个exe可执行文件。
2:将zope.interface-3.8.0-py2.7-win-amd64.egg放到{python安装目录}\Scripts下
3:开始->运行->CMD
C:\>cd Python26\Scripts C:\Python26\Scripts>easy_install.exe zope.interface-3.6.4-py2.6-win32.egg
安装完毕。
然后我们简单测试一下
from twisted.internet import reactor
接下来写一最简单的个socket的服务器:
import os
if os.name!='nt':
from twisted.internet import epollreactor
epollreactor.install()
else:
from twisted.internet import iocpreactor
iocpreactor.install()
from twisted.internet.protocol import Factory,Protocol
from twisted.internet import reactor
class gameSocket(Protocol):
#有新用户连接至服务器
def connectionMade(self):
print 'New Client'
#客户端断开连接
def connectionLost(self,reason):
print 'Lost Client'
#收到客户端发送数据
def dataReceived(self, data):
print 'Get data:' + str(data)
#向该客户端发送数据
self.transport.write('your msg:'+ str(data))
if __name__=='__main__':
f = Factory()
f.protocol = gameSocket
reactor.listenTCP(5200,f)
print 'server started...'
reactor.run()
Fash客户端代码
package { import flash.display.Sprite; import flash.events.Event; import flash.events.ProgressEvent; import flash.net.Socket; import flash.utils.ByteArray; public class PythonFlashSocket extends Sprite { private var m_Socket:Socket; public function PythonFlashSocket() { m_Socket = new Socket(); m_Socket.addEventListener(Event.CONNECT, onSocketConnect); m_Socket.addEventListener(ProgressEvent.SOCKET_DATA, onSocketReceived); m_Socket.connect("127.0.0.1", 5200); } private function onSocketConnect(e:Event):void { this.m_Socket.writeUTFBytes("I'm Flash"); } private function onSocketReceived(e:ProgressEvent):void { trace(this.m_Socket.readUTFBytes(m_Socket.bytesAvailable)); } } }
我们需要准备几个工具:
1.python-2.7.2.amd64.msi
Python 2.7,可以从Python官网下载到
2.pywin32-217.win-amd64-py2.7.exe
Python 2.7Windows开发环境
3.Twisted-12.0.0.win-amd64-py2.7.exe
Python网络编程第三方库,很好用
4.zope.interface-3.8.0-py2.7-win-amd64.egg
Twisted依赖zope包
5.ez_setup.py
在安装zope支持包时需要使用到
参考资料:
用python来开发webgame服务端(1)
用python来开发webgame服务端(2)
用python来开发webgame服务端(3)
用python来开发webgame服务端(4)
用python来开发webgame服务端(5)
相关文章推荐
- Python&Flash开发斗兽棋---2.1网络数据打包与解包
- Python&Flash开发斗兽棋---1.背景
- Python&Flash开发斗兽棋---3.1在Twisted框架下访问MySql数据库
- Python服务器开发二:Python网络基础
- 黑马程序员:Java基础总结----GUI&网络&IO综合开发
- <Test-Driven Development with Python>学习笔记 第一部分 测试驱动开发基础
- 黑马程序员:Java基础总结----GUI&网络&IO综合开发
- Python服务器开发二:Python网络基础
- iOS开发 - 第04篇 - 网络 - 01 - NSOperation & 网络基础
- <<Python基础教程>>学习笔记 | 第14章 | 网络编程
- Python - 网络基础
- python web开发-flask中消息闪现flash的应用
- 一. python开发基础
- 适用于 PHP 开发人员的 Python 基础知识
- Python基础05 三种基本结构&选择结构
- python--基础学习(一)开发环境搭建,体验HelloWorld
- python全栈开发-Day8 函数基础
- Mars老师的Android学习基本路线Linux、数据库、网络协议、服务器端开发知识基础知识
- Python开发基础-Day21多态与多态性、绑定方法和非绑定方法