package
{
import com.commons.utils.Map;
import com.net.tcp.DataCache;
import com.net.tcp.DataContent;
import com.net.tcp.DataHead;
import com.net.tcp.DataPack;
import com.net.tcp.DataType;
import com.net.tcp.NetSocket;
import com.net.tcp.StreamObjectManager;
import com.net.test.TestVO;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.net.Socket;
import flash.utils.ByteArray;
public class NetCommunication extends Sprite
{
private var socket:NetSocket;
private var cache:DataCache;
private var sends:int = 0;
private var maxSends:int = 10;
public function NetCommunication()
{
// StreamObjectManager.init();
// var object:Object = new Object();
// object.id = 2323;
// object.name="fefef";
// var map:Map = new Map();
// map.put("ff", 134);
// map.put("xxx", "nfff");
// object.map = map;
// var testVO:TestVO = new TestVO();
// testVO.o = object;
// testVO.i = 100;
// testVO.d = 130.42424;
// var pack:DataPack = new DataPack();
// pack.writeObject(testVO, DataType.TYPE_OBJECT);
// pack.rewind();
// var testVO1:TestVO = pack.readObject();
// trace(testVO1);
StreamObjectManager.init();
cache = new DataCache();
socket = new NetSocket("127.0.0.1", 2345);
socket.addEventListener(Event.CONNECT, connectComplete);
}
public function connectComplete(event:Event):void{
socket.removeEventListener(Event.CONNECT, connectComplete);
socket.addEventListener(ProgressEvent.SOCKET_DATA, receive);
var object:Object = new Object();
object.id = 2323;
object.name="fefef";
var map:Map = new Map();
map.put("ff", 134);
map.put("xxx", "nfff");
object.map = map;
var testVO:TestVO = new TestVO();
testVO.o = object;
testVO.i = 100;
testVO.d = 130.42424;
send(testVO);
}
public function receive(event:Event):void{
// var byteArray:ByteArray = new ByteArray();
// socket.readInt();
// socket.readBytes(byteArray);
// byteArray.position = 0;
// var content:DataContent = new DataContent();
// content.writeBytes(byteArray, 0, byteArray.bytesAvailable);
// var pack:DataPack = new DataPack(content);
// pack.rewind();
// var object:Object = pack.readObject();
// trace(object);
socket.read(cache);
var pack:DataPack = null;
while((pack = cache.readDataPack()) != null){
var o:Object = pack.readObject();
trace(o);
send(o);
}
}
public function send(object:*):void{
if(sends < maxSends){
var pack:DataPack = new DataPack();
pack.writeObject(object, DataType.TYPE_OBJECT);
pack.rewind();
socket.writeInt(pack.head.len);
socket.writeBytes(pack.content, 0, pack.content.bytesAvailable);
socket.flush();
sends++;
}
}
}
}
{
import com.commons.utils.Map;
import com.net.tcp.DataCache;
import com.net.tcp.DataContent;
import com.net.tcp.DataHead;
import com.net.tcp.DataPack;
import com.net.tcp.DataType;
import com.net.tcp.NetSocket;
import com.net.tcp.StreamObjectManager;
import com.net.test.TestVO;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.net.Socket;
import flash.utils.ByteArray;
public class NetCommunication extends Sprite
{
private var socket:NetSocket;
private var cache:DataCache;
private var sends:int = 0;
private var maxSends:int = 10;
public function NetCommunication()
{
// StreamObjectManager.init();
// var object:Object = new Object();
// object.id = 2323;
// object.name="fefef";
// var map:Map = new Map();
// map.put("ff", 134);
// map.put("xxx", "nfff");
// object.map = map;
// var testVO:TestVO = new TestVO();
// testVO.o = object;
// testVO.i = 100;
// testVO.d = 130.42424;
// var pack:DataPack = new DataPack();
// pack.writeObject(testVO, DataType.TYPE_OBJECT);
// pack.rewind();
// var testVO1:TestVO = pack.readObject();
// trace(testVO1);
StreamObjectManager.init();
cache = new DataCache();
socket = new NetSocket("127.0.0.1", 2345);
socket.addEventListener(Event.CONNECT, connectComplete);
}
public function connectComplete(event:Event):void{
socket.removeEventListener(Event.CONNECT, connectComplete);
socket.addEventListener(ProgressEvent.SOCKET_DATA, receive);
var object:Object = new Object();
object.id = 2323;
object.name="fefef";
var map:Map = new Map();
map.put("ff", 134);
map.put("xxx", "nfff");
object.map = map;
var testVO:TestVO = new TestVO();
testVO.o = object;
testVO.i = 100;
testVO.d = 130.42424;
send(testVO);
}
public function receive(event:Event):void{
// var byteArray:ByteArray = new ByteArray();
// socket.readInt();
// socket.readBytes(byteArray);
// byteArray.position = 0;
// var content:DataContent = new DataContent();
// content.writeBytes(byteArray, 0, byteArray.bytesAvailable);
// var pack:DataPack = new DataPack(content);
// pack.rewind();
// var object:Object = pack.readObject();
// trace(object);
socket.read(cache);
var pack:DataPack = null;
while((pack = cache.readDataPack()) != null){
var o:Object = pack.readObject();
trace(o);
send(o);
}
}
public function send(object:*):void{
if(sends < maxSends){
var pack:DataPack = new DataPack();
pack.writeObject(object, DataType.TYPE_OBJECT);
pack.rewind();
socket.writeInt(pack.head.len);
socket.writeBytes(pack.content, 0, pack.content.bytesAvailable);
socket.flush();
sends++;
}
}
}
}