#coding=utf-8
from socket import *
from time import ctime
HOST='localhost'
PORT=5000
BUFSIZ=4096
ADDR=(HOST, PORT)
tcpSerSock = socket(AF_INET, SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)
while True:
print 'waiting for connection...'
tcpCliSock, addr = tcpSerSock.accept()
print '...connected from:', addr
while True:
data = tcpCliSock.recv(BUFSIZ)
if not data:
break
tcpCliSock.send('[%s] %s' % (ctime(), data))
# tcpCliSock.close()
tcpSerSock.close()
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"
creationComplete="init()">
<mx:Script>
<![CDATA[
private var custSocket:Socket;
[Bindable]
private var response:String = "";
private function init():void {
custSocket = new Socket("localhost", 5000);
configureListeners();
}
private function onClick(evt:Event):void {
sendRequest();
}
private function configureListeners():void {
custSocket.addEventListener(Event.CLOSE, closeHandler);
custSocket.addEventListener(Event.CONNECT, connectHandler);
custSocket.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
custSocket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
custSocket.addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler);
}
private function writeln(str:String):void {
str += "\n";
try {
custSocket.writeUTFBytes(str);
}
catch(e:IOError) {
trace(e);
}
}
private function sendRequest():void {
trace("sendRequest");
writeln(inTxt.text);
custSocket.flush();
}
private function readResponse():void {
var str:String = custSocket.readUTFBytes(custSocket.bytesAvailable);
response += str;
}
private function closeHandler(event:Event):void {
trace("closeHandler: " + event);
trace(response.toString());
}
private function connectHandler(event:Event):void {
trace("connectHandler: " + event);
}
private function ioErrorHandler(event:IOErrorEvent):void {
trace("ioErrorHandler: " + event);
}
private function securityErrorHandler(event:SecurityErrorEvent):void {
trace("securityErrorHandler: " + event);
}
private function socketDataHandler(event:ProgressEvent):void {
trace("socketDataHandler: " + event);
readResponse();
}
]]>
</mx:Script>
<mx:TextArea text="{response}" id="outTxt"
height="126" width="283" fontSize="12"/>
<mx:HBox verticalAlign="bottom" width="282" height="40">
<mx:TextArea id="inTxt" width="100%" height="100%" fontSize="12"/>
<mx:Button label="发送" fontSize="12" click="onClick(event)"/>
</mx:HBox>
</mx:Application>
分享到:
相关推荐
Flex与Socket之间的通信是Web应用中一种常见的实时数据交互方式,尤其在开发在线聊天功能时。Flex是一款基于Adobe Flash Player的开发框架,用于构建富互联网应用程序(RIA)。Socket,也称为套接字,是网络编程中的...
四、Flex与Python的通信:Python开发者可以使用PyAMF库,它提供了AMF的实现,使得Flex能够与Python应用程序进行低延迟的数据交换。 五、Flex与Ruby的通信:Ruby社区中的Gem如BlazeDS Ruby Adapter或Red5 Ruby ...
在Java、Python、C++等语言中,都有对应的socket API供开发者使用。 然后,AMF3是Adobe Flex和ActionScript 3.0中的数据序列化标准。它比早期的AMF0更高效,能够快速地编码和解码复杂的数据结构,如对象、数组、...
8. **服务器端支持**:虽然前端使用Flex,但后台通常需要其他语言(如PHP、Java、Python等)配合,处理用户请求、验证数据、处理业务逻辑以及与数据库交互。 **相关知识点** 1. **ActionScript 3.0**:Flex的主要...
首先,我们要了解ActionScript3.0是Adobe Flash Professional和Flex Builder等开发工具中的编程语言,它基于ECMAScript,提供了丰富的功能和高性能的运行时环境,非常适合创建交互式的Web内容,包括多媒体应用程序和...
4. **实时通信**:为了实现实时聊天,项目可能使用了Socket编程,通过建立客户端与服务器之间的持久连接来传输数据。每当有新消息发送时,服务器会立即通知所有在线用户,而无需频繁地轮询服务器状态。 5. **后端...
sudo apt-get install build-essential g flex bison gperf ruby perl libsqlite3-dev libfontconfig1-dev libicu-dev libfreetype6 libssl-dev libpng-dev libjpeg-dev python libx11-dev ...
- **可扩展性**:除了前端开发的支持外,SmartFoxServer还允许使用多种语言(如ActionScript、JavaScript、Python和Java)进行后端扩展,以适应复杂的逻辑需求和定制化功能。 - **跨平台优势**:由于其完全基于Java...
后端Python-烧瓶Flask-SocketIO前端(首先针对移动设备构建) HTML CSS-BootStrap网格-Flex Box 萨斯JavaScript Flask-SocketIO特征显示名称,当用户首次访问Web应用程序时,系统会提示他们输入显示名称,该显示名称...
除此之外,J2EE还包括JDBC、JNDI、EJB、RMI、JMS、JAVA IDL、JTS、JTA、JAVAMAIL、JAF、Log4j、JUnit、Freemarker、Velocity、Flex、Web Services和SOA等技术。虽然这些技术广泛,但初学者应优先掌握JDBC、JSP、...
包括修改 Linux 系统内核 socket connection 限制、查看总限制参数、修改网络内核对 TCP 连接的限制等步骤。 调试工具 调试工具是实时消息推送系统开发中的重要组件。常见的调试工具包括 Wireshark、tcpdump、adb ...
- 通过命令`sudo apt-get install build-essential git-core libncurses5-dev flex bison texinfo zip unzip zlib1g-dev gettext u-boot-tools g++ xz-utils mtd-utils gawk diffstat gcc-multilib python git make ...