簡單的flash策略文件服務器!

最近在作一個flash小遊戲,
衆所周知,flash鏈接服務器socket的時候,須要向服務器請求策略文件。
如下是一個簡單的策略文件服務器的代碼c++:c++

 1 #include <Winsock2.h>
 2 #include <stdio.h>
 3 #pragma comment(lib,"WS2_32.lib")
 4 #define _CRT_SECURE_NO_WARNINGS
 5 void main()
 6 {
 7     WSADATA wsd;
 8     SOCKET server;                                            //服務器socket
 9     SOCKADDR_IN addrSrv;
10     SOCKADDR_IN addrClient;
11     SOCKET client;                                            //鏈接的客戶端socket
12     char szPolicy[1024] = "";
13     strcat_s(szPolicy, 1024, "<?xml version='1.0'?>");
14     strcat_s(szPolicy, 1024, "<cross-domain-policy>");
15     strcat_s(szPolicy, 1024, "<site-control permitted-cross-domain-policies='all'/>");
16     strcat_s(szPolicy, 1024, "<allow-access-from domain='*' to-ports='*'/>");
17     strcat_s(szPolicy, 1024, "</cross-domain-policy>");
18     int len;
19     if (WSAStartup(MAKEWORD(2, 2), &wsd) != 0)
20     {
21         printf("start up failed!\n");
22         return;
23     }
24     server = socket(AF_INET, SOCK_STREAM, 0);                    //建立socket
25     addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);            //設置地址
26     addrSrv.sin_family = AF_INET;
27     addrSrv.sin_port = htons(843);                            //設置端口號
28     bind(server, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR));        //綁定
29     printf("flash策略文件服務器已啓動!\n");    
30     
31     listen(server, 5);                                        //設置最多鏈接數
32     int count = 0;
33     len = sizeof(SOCKADDR);
34     while (1)
35     {
36         client = accept(server, (SOCKADDR*)&addrClient, &len);    //接收客戶端鏈接
37         char buff[1024] = "";        
38         recv(client, buff, 1024, 0);        
39         szPolicy[strlen(szPolicy)] = '\0';
40         send(client, szPolicy, strlen(szPolicy), 0);        
41         closesocket(client);
42         count++;
43         printf("已成功返回%d個客戶端!", count);
44     }
45     WSACleanup();
46 }
相關文章
相關標籤/搜索