Flash/AS3与C++通过socket通信

原创 2013年06月29日 13:25:19
c++部分

  • ///main.cpp
  • #include <iostream>  ///加载需要的头文件 关于输入输出
  • #include <winsock2.h> ///socket套接字头文件
  • using namespace std; ///使std命名空间全部展开不用每次在写std::前缀了
  • WSADATA wsaData;//WSADATA 是一个结构 说明需要装载的dll的版本相关信息
  • SOCKET listeningSocket;//监听连接的socket
  • SOCKET newConnection;//已经连接的socket
  • SOCKADDR_IN serverAddr;//服务器的相关信息
  • SOCKADDR_IN clientAddr;//连接端的相关信息
  • char message[256;//用来读取客户的发送来的消息
  • int main(int argc, char *argv[)  ///程序的入口
  • {
  •      //装载dll文件
  •      WSAStartup(MAKEWORD(2,2),&wsaData);
  •      //创建一个新的嵌套字来监听客户端连接,使用TCP协议
  •      listeningSocket = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
  •      //建立SOCKADDR_IN结构,为bind做好准备
  •      serverAddr.sin_family = AF_INET;
  •      serverAddr.sin_port = htons(30006);
  •      serverAddr.sin_addr.s_addr = htonl(INADDR_ANY);
  •      bind(listeningSocket,(SOCKADDR*)(&(serverAddr)),sizeof(serverAddr));

  •      listen(listeningSocket,5)//开始监听,最多可以处理的连接请求为5
  •      int ClientAddrLen = sizeof(struct sockaddr_in);   //struct sockaddr_in结构的大小
  •      //****等待连接,一直阻塞到获得连接
  •      //返回连接的socket
  •      //参数1 被绑定的socket
  •      //参数2 当发生请求时被填充的结构
  •      //参数3 第2个参数的结构大小 这里必须给的是地址
  •      newConnection = accept(listeningSocket,(SOCKADDR*)(&clientAddr),&ClientAddrLen);
  •      //****发送数据****
  •      //参数1是已连接的socket
  •      //参数2是一个字符串
  •      //参数3是字符串的大小
  •      //参数4是状态默认为0
  •      send(newConnection,"socket is ok\0",(int)strlen("socket is ok\0")+1,0);
  •      //****接收数据****
  •      //参数1是已连接的socket
  •      //参数2是一个char数组
  •      //参数3是传送中最多所能容纳的字节数
  •      //参数4是状态默认0
  •      recv(newConnection,message,256,0);

  •      cout<<"flash穿过的参数是"<<message<<endl;     
  •      //关闭socket
  •      closesocket(newConnection);
  •      closesocket(listeningSocket);
  •      WSACleanup();
  •     system("PAUSE"); ///让屏幕出现按任意键结束的提示没有此句程序运行直接退出
  •     return EXIT_SUCCESS; ///返回
  • }




设置编译环境:
[devC++]工具->编译选项,然后在下边的在连接命令行加入打勾,输入-lwsock32,
[code::block]中直接在linker libraries 里面添加wsock32

AS3部分



  • ///main.as

  • package
  • {
  •     import flash.utils.ByteArray;
  •     import flash.net.Socket;
  •     import flash.events.ProgressEvent
  •     import flash.display.Sprite;
  •     public class Client extends Sprite
  •     {
  •        private var socket:Socket = new Socket();
  •        private var byteArray:ByteArray = new ByteArray();
  •        public function Client()
  •        {
  •            socket.connect("127.0.0.1",30006);
  •            socket.addEventListener( ProgressEvent.SOCKET_DATA, onSocketData );
  •        }
  •        function onSocketData(e:ProgressEvent ):void
  •        {
  •            socket.readBytes(byteArray);
  •            trace("c++过来的参数:"+byteArray);
  •            socket.writeUTFBytes("good bye");
  •            socket.flush();
  •        }
  •     }
  • }

flash与c++进行Socket进行简单通信

一、简介       用flash去开发应用,,免不了网络通讯,特别是网络游戏,需要用到即使通讯。 as3提供了两个支持即时通讯的类:XMLSocket和Socket,       前者其实是只支持发...
  • u010150082
  • u010150082
  • 2013年10月29日 17:07
  • 1692

Adobe FlasCC中 C++端与Flash端的函数参数(如数组和ByteArray)传递

节选自:Using C++ code for path finding in your ActionScript game   如下为C++端接口,as3api.cpp: /* ** ADOBE SY...
  • songxp03
  • songxp03
  • 2013年11月20日 09:27
  • 3291

C#和C++结构体Socket通信

最近在用C#做一个项目的时候,Socket发送消息的时候遇到了服务端需要接收C++结构体的二进制数据流,这个时候就需要用C#仿照C++的结构体做出一个结构来,然后将其转换成二进制流进行发送,之后将响应...
  • hany3000
  • hany3000
  • 2014年01月06日 03:02
  • 1180

google protobuf与as3的通信协议

Protobuf是谷歌开发的一套用于序列化结构数据、沟通协议、数据储存等用途的工具,具有语言无关性、平台无关性、可扩展性等优点。 用于通信时,只要通信双方都使用protobuf生成的协议代码,就...
  • dingqinghui
  • dingqinghui
  • 2017年07月10日 11:38
  • 341

代码转换工具(as3 - cocos2dx) (一) 由来

之前一直做页游,今年转了手游,我们的游戏是横版格斗类型的,前端采用的技术是cocos2dx (c++和js),c++负责框架部分,js负责逻辑部分。 做页游时一直用的as3开发,用着还挺顺的,转了js...
  • jiexiaopei_2004
  • jiexiaopei_2004
  • 2014年11月27日 14:34
  • 643

c++ Windows Socket实现最简单的C/S网络通信(TCP)

1.服务器端代码: #include #include #pragma comment(lib, "ws2_32.lib") #define CONNECT_NUM_MAX 10 using na...
  • doudouxuexi
  • doudouxuexi
  • 2015年09月18日 12:37
  • 2941

C++ Socket通信总结(附C++实现)

因为项目需要,服务端需要一个SOCKET来接收客户端的请求,好吧,没办法度娘哇,结果很多都是linux的例子,功夫不负有心人啊,终于找到个demo,并且客户端代码详尽,记录之,以便以后查看。 一...
  • linghu_java
  • linghu_java
  • 2015年02月04日 17:11
  • 7719

AS3 Socket从零开始。

测试的时候flash得先从组件里拉一个Button组件到舞台上,并取个实例名btnSend,然后先运行java服务端,再启动客户端,点击按钮就会看到连接成功的输出。 上面的代码显得有点乱,如果看不懂没...
  • ufodsyfaa
  • ufodsyfaa
  • 2013年07月06日 09:58
  • 1437

TCP通讯socket自定义协议的实现

转发(JAVA):http://blog.csdn.net/u010818425/article/details/53448817     一个简单的自定义通信协议(socket),http://bl...
  • yyxyong
  • yyxyong
  • 2017年03月17日 18:46
  • 2260

Flex通信-与Java实现Socket通信实例

Flex通信-与Java实现Socket通信实例 (给自己借鉴一下) Flex 环境准备 【服务器端】 JDK1.6,“java.net”包对网络编程提供了非常全面的支持,包括So...
  • a1164386685
  • a1164386685
  • 2014年11月26日 14:55
  • 480
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Flash/AS3与C++通过socket通信
举报原因:
原因补充:

(最多只允许输入30个字)