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. }


 

09-05 19:11