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
Ïà¹ØÎĵµ£º
¡¡1.¸ÅÊö
¡¡¡¡Ðí¶à³õѧÕ߶ÔC/C++ÓïÑÔÖеÄvoid¼°voidÖ¸ÕëÀàÐͲ»ÉõÀí½â£¬Òò´ËÔÚʹÓÃÉϳöÏÖÁËһЩ´íÎó¡£±¾ÎĽ«¶Ôvoid¹Ø¼ü×ÖµÄÉî¿Ìº¬Òå½øÐнâ˵£¬²¢ÏêÊövoid¼°voidÖ¸ÕëÀàÐ͵ÄʹÓ÷½·¨Óë¼¼ÇÉ¡£
¡¡¡¡2.voidµÄº¬Òå
¡¡¡¡voidµÄ×ÖÃæÒâ˼ÊÇ“ÎÞÀàÐÍ”£¬void *ÔòΪ“ÎÞÀàÐÍÖ¸Õ딣¬void *¿ÉÒÔÖ¸ÏòÈκÎÀàÐ͵ÄÊý¾ ......
package thread;
public class ThreadTest {
public static void main(String args[])
{
//new TestThread ().start();
TestThread tt= new TestThread();//´´½¨TestThreadÀàµÄÒ»¸öʵÀý
Thread t= new Thread(tt);//´´½¨Ò»¸öThreadÀàµÄʵÀý
t.start();//ʹÏ߳̽øÈëRunnable״̬
new Thread(tt).star ......
ÏÂÔØÒ»¸öJDKµÄ°²×°°ü£¬ÎÒÏÂÔصÄÊÇjdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008.exe£¬´ó¼Ò¿ÉÒÔÈ¥ÍøÉÏËÑË÷£¬Ò²¿ÉÒÔÈ¥¹Ù·½
ÏÂÔØ¡£
ÏÂÔغ󣬵ã»÷exeÎļþ£¬Ò»Ö±ÏÂÒ»²½µÄ°²×°£¬Óöµ½ÐèҪѡÔñ°²×°Ä¿Â¼µÄ£¬¿ÉÒÔĬÈÏ£¬Ò²¿ÉÒÔ×Ô¼ºÖ¸¶¨£¨ÀýÈçÖ¸¶¨°²×°ÔÚD:\Program Files\Java)
°²×°¹ý³ÌÓÐÁ½´ÎÑ¡Ôñ·¾¶µÄ£¬Ò»´ÎÊǶÔjdk1.6.0_10½ø ......
Ò»¡¢Ï̸߳ÅÊö
Ïß³ÌÊdzÌÐòÔËÐеĻù±¾Ö´Ðе¥Ôª¡£µ±²Ù×÷ϵͳ(²»°üÀ¨µ¥Ï̵߳IJÙ×÷ϵͳ£¬Èç΢ÈíÔçÆÚµÄDOS)ÔÚÖ´ÐÐÒ»¸ö³ÌÐòʱ£¬»áÔÚϵͳÖн¨Á¢Ò»¸ö½ø³Ì£¬¶øÔÚÕâ¸ö½ø³ÌÖУ¬±ØÐëÖÁÉÙ½¨Á¢Ò»¸öỊ̈߳¨Õâ¸öÏ̱߳»³ÆΪÖ÷Ị̈߳©À´×÷ΪÕâ¸ö³ÌÐòÔËÐеÄÈë¿Úµã¡£Òò´Ë£¬ÔÚ²Ù×÷ϵͳÖÐÔËÐеÄÈκγÌÐò¶¼ÖÁÉÙÓÐÒ»¸öÖ÷Ï̡߳£
½ø³ÌºÍÏß³ÌÊÇÏÖ´ú²Ù× ......