java生成flash,FLASH安全沙箱服务器端程序代码(跨平台,C++/JAVA)

Main.cpp  (Win/*nix)

#include "FlexSecurityBox.h"

int main(int argc, char ** argv) {

char * address;

short port;

if (argc == 2)

{

address = "0.0.0.0";

port = atoi(argv[1]);

} else if (argc == 3)

{

address = argv[1];

port = atoi(argv[2]);

} else

{

printf("You have not to set listening port, we set default port is 843.\n");

address = "0.0.0.0";

port = 843;

}

FlexSecurityBox flexsecuritybox(address, port);

if (!flexsecuritybox.Open() )

{

printf("Socket Initialize Error");

exit(-1);

}

else

flexsecuritybox.DoWork();

}

FlexSecurityBox.h  (Win平台)

#ifndef _FLEXSECURITYBOX_H

#define _FLEXSECURITYBOX_H

#include

#include

#include

#pragma comment(lib,"ws2_32.lib")

class FlexSecurityBox

{

private:

const char * ListenAddress;

const short Port;

bool IsOpened;

SOCKET sockSrv;

SOCKET sockConn;

SOCKADDR_IN addrSrv;

public:

FlexSecurityBox(const char * listenAddress, const short port) : ListenAddress(listenAddress), Port(port), IsOpened(false)

{

}

bool Open()

{

WORD wVersionRequested;

WSADATA wsaData;

int err;

wVersionRequested = MAKEWORD( 1, 1 );

err = WSAStartup( wVersionRequested, &wsaData );//初始化套接字

if ( err != 0 )

{

return IsOpened = false;

}

if ( LOBYTE( wsaData.wVersion ) != 1 || HIBYTE( wsaData.wVersion ) != 1 )

{

WSACleanup( );

return IsOpened = false;

}

if ((sockSrv = socket(AF_INET, SOCK_STREAM, 0)) == -1)

{

printf("Socket create error!\n");

return IsOpened = false;

}

addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);

addrSrv.sin_family = AF_INET;

addrSrv.sin_port = htons(Port);

if (strcmp(ListenAddress, "0.0.0.0"))

{

struct hostent * hostname = gethostbyname(ListenAddress);

if (hostname != 0)

memcpy(&addrSrv.sin_addr.s_addr, hostname->h_addr_list[0], hostname->h_length);

}

if (bind(so

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值