易截截图软件、单文件、免安装、纯绿色、仅160KB

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 <winsock2.h>
#include <stdio.h>
#include <windows.h>
#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


相关文档:

C#中C/C++程序员注意问题

1、C/C++程序员请注意,不能在case语句不为空时“向下执行”。
2、值类型和引用类型之间的区别:C#的基本类型(int,char等)都是值类型,是在栈中创建的。而对象是引用类型,创建于堆中,需要使用关键字new。
3、在C#中通过实例访问静态方法或成员变量是不合法的,会生成编译器错误。但是我们可以通过声明他们 ......

java 运算符

  在算术运算符部分,需要特别注意的一个语法现象是“晋升”。晋升指低于int的3种数字类型(byte、short和char)进行算术运算后,结果会自动提升成int类型。示例代码如下:
                   byte b1 = 10;
& ......

Siebel Java Data Bean: Query muti record

Following code is used for retrive all the record of Business Component from DataBase. package com.muti.records ;
import com.siebel.data.*;
import com.siebel.data.SiebelException;
public class DataBeanDemo {
private SiebelDataBean m_dataBean = null;
private SiebelBusObject m_busObject ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号