flash/as3与c 通过socket通信-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 258170
  • 博文数量: 37
  • 博客积分: 1126
  • 博客等级: 少尉
  • 技术积分: 930
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-29 17:22
文章分类

(37)

  • (1)
  • (4)
  • (22)
  • (8)
  • (2)
  • (0)
文章存档

(1)

(11)

(19)

(6)

我的朋友
最近访客
相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: delphi

2012-06-26 15:05:07

c 部分

点击(此处)折叠或打开

  1. ///main.cpp

  2. #include <iostream>  ///加载需要的头文件 关于输入输出
  3. #include <winsock2.h> ///socket套接字头文件
  4. using namespace std; ///使std命名空间全部展开不用每次在写std::前缀了


  5. wsadata wsadata;//wsadata 是一个结构 说明需要装载的dll的版本相关信息
  6. socket listeningsocket;//监听连接的socket
  7. socket newconnection;//已经连接的socket
  8. sockaddr_in serveraddr;//服务器的相关信息
  9. sockaddr_in clientaddr;//连接端的相关信息
  10. char message[256];//用来读取客户的发送来的消息


  11. int main(int argc, char *argv[])  ///程序的入口
  12. {
  13.     
  14.      //装载dll文件
  15.      wsastartup(makeword(2,2),&wsadata);
  16.      //创建一个新的嵌套字来监听客户端连接,使用tcp协议
  17.      listeningsocket = socket(af_inet,sock_stream,ipproto_tcp);
  18.      //建立sockaddr_in结构,为bind做好准备
  19.      serveraddr.sin_family = af_inet;
  20.      serveraddr.sin_port = htons(30006);
  21.      serveraddr.sin_addr.s_addr = htonl(inaddr_any);
  22.      bind(listeningsocket,(sockaddr*)(&(serveraddr)),sizeof(serveraddr)) 

  23.      listen(listeningsocket,5) //开始监听,最多可以处理的连接请求为5

  24.      int clientaddrlen = sizeof(struct sockaddr_in);   //struct sockaddr_in结构的大小
  25.      //****等待连接,一直阻塞到获得连接
  26.      //返回连接的socket
  27.      //参数1 被绑定的socket
  28.      //参数2 当发生请求时被填充的结构
  29.      //参数3 第2个参数的结构大小 这里必须给的是地址
  30.      newconnection = accept(listeningsocket,(sockaddr*)(&clientaddr),&clientaddrlen);

  31.      //****发送数据**** 
  32.      //参数1是已连接的socket
  33.      //参数2是一个字符串
  34.      //参数3是字符串的大小
  35.      //参数4是状态默认为0
  36.      send(newconnection,"socket is ok\0",(int)strlen("socket is ok\0")1,0);

  37.      //****接收数据****
  38.      //参数1是已连接的socket
  39.      //参数2是一个char数组
  40.      //参数3是传送中最多所能容纳的字节数  
  41.      //参数4状态默认0
  42.      recv(newconnection,message,256,0);

  43.      cout<<"flash穿过的参数是"<<message<<endl;     

  44.      //关闭socket
  45.      closesocket(newconnection);
  46.      closesocket(listeningsocket);
  47.      wsacleanup();

  48.     system("pause"); ///让屏幕出现按任意键结束的提示没有此句程序运行直接退出
  49.     return exit_success; ///返回
  50. }

设置编译环境:

[devc ]工具->编译选项,然后在下边的在连接命令行加入打勾,输入-lwsock32,

[code::block]中直接在linker libraries 里面添加wsock32


as3部分


点击(此处)折叠或打开

  1. ///main.as

  2. package
  3. {
  4.     import flash.utils.bytearray;
  5.     import flash.net.socket;
  6.     import flash.events.progressevent
  7.     import flash.display.sprite;
  8.    
  9.     public class client extends sprite
  10.     {
  11.        private var socket:socket = new socket();
  12.        private var bytearray:bytearray = new bytearray();
  13.        public function client()
  14.        {
  15.            socket.connect("127.0.0.1",30006);
  16.            socket.addeventlistener( progressevent.socket_data, onsocketdata );
  17.        }
  18.        function onsocketdata(e:progressevent ):void
  19.        {
  20.            socket.readbytes(bytearray);
  21.            trace("c 过来的参数:"bytearray);
  22.            socket.writeutfbytes("good bye");
  23.            socket.flush();
  24.        }
  25.     }
  26. }


 

阅读(10341) | 评论(1) | 转发(0) |
0

上一篇:

下一篇:

给主人留下些什么吧!~~

2014-04-04 11:15:41

tnx

|
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图