Ejemplo n.º 1
0
int main(int argc, char *argv[])
{

    WSADATA WSInfo;
    if (WSAStartup(0x202, &WSInfo))
        return 2;

    if (argc == 2)
    {
        IN_ADDR* Table = Get_Table();

        int Num_of_BroadCast;
        printf("Enter number of Broadcast Address: ");
        scanf("%d", &Num_of_BroadCast);
        argv[2] = inet_ntoa(Table[Num_of_BroadCast]);

    }
    else if (argc != 3)
        return 1;

    SOCKET UdpSock;
    UdpSock = socket(AF_INET, SOCK_DGRAM, 0);

    HANDLE Rcv_Thread;

    bool opt = true;
    if (setsockopt(UdpSock, SOL_SOCKET, SO_BROADCAST, (char*)&opt, sizeof(opt)) == -1)
        return 3;

    Src_Addr.sin_family = AF_INET;
    Src_Addr.sin_addr.S_un.S_addr = INADDR_ANY;
    Src_Addr.sin_port = htons(atoi(argv[1]));

    struct hostent *hp_d;
    hp_d = gethostbyname(argv[2]);

    Dst_Addr.sin_family = AF_INET;
    Dst_Addr.sin_addr = *((struct in_addr *) hp_d->h_addr);
    Dst_Addr.sin_port = htons(atoi(argv[1]));

    if (bind(UdpSock, (struct sockaddr*)&Src_Addr, sizeof(Src_Addr)) == -1)
        return 4;

    Rcv_Thread = CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)Msg_Rcv, (LPVOID)UdpSock, NULL, NULL);

    while (true)
    {
        char* msg = new char[BUFFER_SIZE];

        printf("\n > ");
        fflush(stdin);
        fgets(msg, BUFFER_SIZE, stdin);

        sendto(UdpSock, msg, strlen(msg) + 1, NULL, (sockaddr*)&Dst_Addr, sizeof(Dst_Addr));
    }

    closesocket(UdpSock);
    WSACleanup();
    return 0;
}
Ejemplo n.º 2
0
//---------------------------------------------------------
wxString CWKSP_Table::Get_Description(void)
{
	wxString	s;

	//-----------------------------------------------------
	s	+= wxString::Format("<h4>%s</h4>", _TL("Table"));

	s	+= "<table border=\"0\">";

	DESC_ADD_STR(_TL("Name"             ), m_pObject->Get_Name());
	DESC_ADD_STR(_TL("Description"      ), m_pObject->Get_Description());

	if( SG_File_Exists(m_pObject->Get_File_Name(false)) )
	{
		DESC_ADD_STR(_TL("File"         ), m_pObject->Get_File_Name(false));
	}
	else if( m_pObject->Get_MetaData_DB().Get_Children_Count() )
	{
		DESC_ADD_STR(_TL("File"         ), m_pObject->Get_File_Name(false));
	}
	else
	{
		DESC_ADD_STR(_TL("File"         ), _TL("memory"));
	}

	DESC_ADD_STR(_TL("Modified"         ), m_pObject->is_Modified() ? _TL("yes") : _TL("no"));
	DESC_ADD_INT(_TL("Number of Records"), Get_Table()->Get_Count());
	DESC_ADD_INT(_TL("Selected"         ), Get_Table()->Get_Selection_Count());

	s	+= wxT("</table>");

	s	+= Get_TableInfo_asHTML(Get_Table());

	//-----------------------------------------------------
//	s	+= wxString::Format(wxT("<hr><b>%s</b><font size=\"-1\">"), _TL("Data History"));
//	s	+= m_pTable->Get_History().Get_HTML();
//	s	+= wxString::Format(wxT("</font"));

	//-----------------------------------------------------
	return( s );
}
Ejemplo n.º 3
0
int main()
{
	Copyright();  //输出程序信息

	char *s = (char *)malloc(MAXLEN * sizeof(char));         //用来保存输入数据
	char *backups_s = s;                                     //备份s指针 用于释放内存
    char *filepath = (char *)malloc(MAXLEN * sizeof(char));  //用来储存文件路径
	char *backups_p = filepath;
	while (1)
	{
        Pre();
		s = backups_s;
		Read_Argv(s);
		if (*s != '-')
		{
			gets(s);
			Error();
			continue;
		}
		s ++;
		filepath = backups_p;
        
		if (Equal(s , "index"))
		{
		    int t;
			scanf("%d" , &t);
			if (t == 1)
			    printf("---Open the index function successfully.---\n");
			else
				if (t == 0)
					printf("---Close the index function successfully.---\n");
				else
					Error();
			gets(s);
			continue;
		}
		else
			if (*(s + 1) != '\0')
			{
				gets(s);
				Error();
				continue;
			}
		switch (*s) 
		{
		    case 'c' : Get_Path(filepath);
				       Create_Table(filepath);
					   break;

			case 'i' : s = backups_s;   
					   Get_Table(s);        //第二个参数 表名
				       Get_Path(filepath);
					   Import_Data(s , filepath);
					   break;

			case 's' : Get_Path(filepath);
					   Select(filepath);
					   break;

			case 'u' : Get_Path(filepath);
					   Update(filepath);
				       break;

			case 'd' : Get_Path(filepath);
					   Delete(filepath);
					   break;

			case 'h' : Help();
				       break;

		    case 'q' : Exit_pro();
					   free(backups_s);
					   free(backups_p);
					   Free();
				       return 0;

			default  : gets(s);
				       Error();
				       break;
		}
		gets(s);
	}

	return 0;
}