CopyCode The Code is as follows ://
// Cxmlsocket.
//
//
// Written by leezhm, 20th Oct, 2008
// Contact: Leezhm@luxoom.cn
//
Package
{
Import flash. Events. dataevent;
Import flash. Events. event;
Import flash. Events. ieventdispatcher;
Import flash. Events. ioerrorevent;
Import flash. Events. progressevent;
Import flash. Events. securityerrorevent;
Import flash.net. xmlsocket;
Import flash. system. Security;
Public class cxmlsocket extends xmlsocket
{
// Declare Variables
Private var mhostname: String = "127.0.0.1 ";
Private var mport: Int = 7654;
Private var mstrrecvbuf: string;
// Constructor
Public Function cxmlsocket (): void
{
// Confignetevent (this );
Connect ();
}
Public Function connect (): void
{
VaR xmlstr: String = "xmlsocket ://";
Xmlstr + = mhostname;
Xmlstr + = ":";
Xmlstr + = mport;
Security. loadpolicyfile (xmlstr );
Trace (xmlstr );
Confignetevent (this );
This. Connect (mhostname, mport );
}
Private function confignetevent (Dispatcher: ieventdispatcher): void
{
Dispatcher. addeventlistener (event. Connect, onconnect );
Dispatcher. addeventlistener (event. Close, onclose );
Dispatcher. addeventlistener (dataevent. Data, onsocketdata );
Dispatcher. addeventlistener (ioerrorevent. io_error, onioerror );
Dispatcher. addeventlistener (progressevent. Progress, onprogress );
Dispatcher. addeventlistener (securityerrorevent. security_error, onsecurityerror );
}
Private function onconnect (argevent: Event): void
{
Trace ("onconnect --->" + argevent );
This. Send ("connected ");
}
Private function onclose (argevent: Event): void
{
Trace ("onclose --->" + argevent );
}
Private function onsocketdata (argevent: dataevent): void
{
Trace (argevent. Text );
}
Private function onioerror (argevent: ioerrorevent): void
{
Trace ("onioerror --->" + argevent. Text );
}
Private function onprogress (argevent: progressevent): void
{
Trace ("onprogress --->" + argevent. bytesloaded +
"Total:" + argevent. bytestotal );
}
Private function onsecurityerror (argevent: securityerrorevent): void
{
Trace ("onsecurityerror --->" + argevent );
}
}
}
C ++-Based Server Source Code: Copy code The Code is as follows: // server. cpp: implementation file
//
# Include "stdafx. H"
# Include "server. H"
# Include "SerialPort. H"
Extern cserialport m_ports;
// Cserver
Extern cptrarray gsocketarr;
Extern bool gbisconnected;
Cserver: cserver (): mstrsendbuf ("")
{
// Bisconnectflash = false;
}
Cserver ::~ Cserver ()
{
}
// Cserver member functions
Void cserver: onaccept (INT nerrorcode)
{
// Todo: add your specialized code here and/or call the base class
If (0 = nerrorcode)
{
Cserver * psocket = new cserver ();
If (socket_error! = This-> Accept (* psocket ))
{
Gsocketarr. Add (psocket );
}
Else
{
: Afxmessagebox (_ T ("Accept-> error "));
}
Psocket = NULL;
}
Casyncsocket: onaccept (nerrorcode );
}
Void cserver: onreceive (INT nerrorcode)
{
// Todo: add your specialized code here and/or call the base class
If (0 = nerrorcode)
{
Char Buf [30] = {0 };
Int nread = This-> receive (BUF, 30 );
If (0! = Nread & socket_error! = Nread)
{
//
// Debug info
//
STD: fstream debug;
Debug. Open (_ T ("debug.txt"), STD: IOS: APP );
Int yvalue;
If (Debug. is_open ())
{
Debug <Buf <"\ n ";
Yvalue = atoi (BUF );
// M_ports.writetoport (
}
Debug. Close ();
If (0 = strcmp ("<policy-file-Request/>", Buf ))
{
STD: String strxml = "<cross-domain-Policy> ";
Strxml + = "<allow-access-from domain = \" * \ "to-ports = \" * \ "/> ";
// Strxml + = "<allow-access-from domain = \" localhost \ "to-ports = \" 1025,9999 \ "/> ";
Strxml + = "</Cross-Domain-Policy> ";
Strxml + = "\ 0 \ 0 ";
This-> send (strxml. c_str (), (INT) strxml. Length () + 1 );
Gbisconnected = true;
}
Else if (0 = strcmp ("connected", Buf ))
{
///: Afxmessagebox (_ T ("hello "));
Gbisconnected = true;
}
}
}
Casyncsocket: onreceive (nerrorcode );
}
Void cserver: senddata ()
{
If (0 = gsocketarr. isempty ())
{
For (INT I = 0; I <gsocketarr. getsize (); I ++)
{
(Cserver *) gsocketarr [I])-> send (mstrsendbuf. c_str (), (INT) mstrsendbuf. Length () + 1 );
}
STD: fstream debug;
Debug. Open (_ T ("debug.txt"), STD: IOS: APP );
Int yvalue;
If (Debug. is_open ())
{
Debug <mstrsendbuf <"\ n ";
}
Debug. Close ();
}
Else
{
: Afxmessagebox (_ T ("socket error "));
}
}
Pay attention to the server sideProgramIs an asynchronous socket class inherited from casyncsocket in MFC