亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dialog.c

?? 使用本地端口訪問遠程不同IP端口
?? C
字號:
#include<stdio.h>#include<stdlib.h>#include<sys/types.h>#include<sys/socket.h>#include<sys/select.h>#include<netinet/in.h>#include<arpa/inet.h>#include<unistd.h>#include<string.h>//#include<pthread.h>#include <gtk/gtk.h>#include "inifile.h"#include "dialog.h"#include "IpHead.h"#include "socket.h"#define MAXSOCKFD 11#define BUFFERSIZE 4096#define MAXMAP 100//--------------------------------------------////              CommServer ver2.0		////-------------------------------------------//int giRows =0;GtkTextBuffer *gbuffer;GtkWidget *text;struct IPTable iptable[MAXMAP];int giMapNum =0;extern int gThreadRunning;extern int gThreadStop;void StartService(void){	int fileError;	char s[200];	int i =0;	char ItemHead[30];	fileError = ReadINI("Comm.ini");	if (fileError ==0)	{		sprintf(s,"Can't open Comm.ini File.Checking the file is existed.\n");		ShowMessage(s);	}		if(GetItem("main","localipaddress1") != NULL){		strcpy(gsLocalIP1, GetItem("main","localipaddress1"));	}		if(GetItem("main","localipaddress2") != NULL){		strcpy(gsLocalIP2 ,GetItem("main","localipaddress2"));	}		if(GetItem("main","remoteipaddress") != NULL){		strcpy(gsRemoteIP,GetItem("main","remoteipaddress"));	}		giMapNum = atoi(GetItem("main","mapportnum"));	if(giMapNum > 0)	{		for(i=1;i<(giMapNum + 1);i++)		{		//	bzero(ItemHead,sizeof(ItemHead));			sprintf(ItemHead,"mapport%d",i);			iptable[i].ctrlport = atoi(GetItem(ItemHead,"ctrlport"));			iptable[i].mapport = atoi(GetItem(ItemHead,"mapport"));			strcpy(iptable[i].ipaddress,GetItem(ItemHead,"ip"));		}	}else{		ShowMessage("無映射端口,請設置!\n");		return;	}	gThreadRunning = 1;		InitList();	for(i=1;i<(giMapNum+1);i++)	{		if(iptable[i].ctrlport > 0)		{			g_thread_create((GThreadFunc)ListenPortTread, iptable[i].ctrlport,FALSE,NULL);		}	}	//int transport;	//transport = TRANSPORT;	g_thread_create((GThreadFunc)TransmitThread, TRANSPORT,FALSE,NULL);	//-----------start listen for be map port-----------------//	ListenMapPort();//	ShowMessage("初始化完畢!\n");}void ListenMapPort(){	int i;	int mapport;	char ipaddr[16];	int iError;	char strmsg[100];	for (i = 1;i < MAXPORTNUM;i++)	{		mapport = iptable[i].mapport;		if(mapport > 0)		{			if(strlen(iptable[i].ipaddress)	> 0 )			{				strcpy(ipaddr,iptable[i].ipaddress);			}			iError = CheckHost(ipaddr);			if(iError == 0)			{				g_thread_create((GThreadFunc)ScanMapPortThread,i,FALSE,NULL);			}else			{				sprintf(strmsg,"ipaddress : %s not find,port : %d not be mapping.\n",ipaddr,mapport);				ShowMessage(strmsg);			}		}		}}static gint motion_notify_event (GtkWidget *widget, GdkEventMotion *event){  /*int x, y;  GdkModifierType state;  if (event->is_hint)    gdk_window_get_pointer (event->window, &x, &y, &state);  else    {      x = event->x;      y = event->y;      state = event->state;    }      if (state & GDK_BUTTON1_MASK && pixmap != NULL)    draw_brush (widget, x, y);  */  	return TRUE;}static gint configure_event(GtkWidget *widget,GdkEventConfigure *event){	return TRUE;}int QMessageBox(GtkWidget *window,char *info){	GtkWidget *dialog;	gint response;	int result=0;	dialog = gtk_message_dialog_new(GTK_WINDOW(window),GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,		GTK_MESSAGE_INFO,GTK_BUTTONS_YES_NO,(gchar *)info);	response = gtk_dialog_run(GTK_DIALOG(dialog));	switch(response)	{		case GTK_RESPONSE_YES:			result = 1;			break;		case GTK_RESPONSE_NO:			result = 2;			break;		default:			break;	}	if (result > 0 )		gtk_widget_destroy(dialog);	return result;}void ClsView(void){	GtkTextIter start,end;	gdk_threads_enter();	gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(gbuffer),&start,&end);        // /*獲得緩沖區開始和結束位置的Iter */	gtk_text_buffer_delete(GTK_TEXT_BUFFER(gbuffer),&start,&end);                /*delete text buffer*/	gdk_threads_leave();}void ClsView1(void){	GtkTextIter start,end;//	gdk_threads_enter();	gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(gbuffer),&start,&end);        // /*獲得緩沖區開始和結束位置的Iter */	gtk_text_buffer_delete(GTK_TEXT_BUFFER(gbuffer),&start,&end);                /*delete text buffer*///	gdk_threads_leave();}void insert_text( GtkTextBuffer *buffer ,const char *str){   	GtkTextIter start,end;   	gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(gbuffer),&start,&end);      //   /*獲得緩沖區開始和結束位置的Iter*/   	gtk_text_buffer_insert (gbuffer, &end,str, -1);}void Msg(const char *str){		if (giRows >  50)	{		ClsView1();		giRows = 0;	}//	gdk_threads_enter();	insert_text(gbuffer ,str);//	gdk_threads_leave();	giRows++;}void ShowMessage(const char *str){		if (giRows >  50)	{		ClsView();		giRows = 0;	}	gdk_threads_enter();	insert_text(gbuffer ,str);	gdk_threads_leave();	giRows++;}static GtkWidget *create_text( void ){   GtkWidget *scrolled_window;   GtkWidget *view;     view = gtk_text_view_new ();   gbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));   scrolled_window = gtk_scrolled_window_new (NULL, NULL);   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),		   	           GTK_POLICY_AUTOMATIC,				   GTK_POLICY_AUTOMATIC);   gtk_container_add (GTK_CONTAINER (scrolled_window), view);   gtk_widget_show_all (scrolled_window);   return scrolled_window;}   int main( int   argc,     char *argv[] ){	GtkWidget *window;	GtkWidget *textview;	GtkWidget *menu;	GtkWidget *table;		if(!g_thread_supported())		g_thread_init(NULL);		gdk_threads_init();		gtk_init (&argc, &argv);		window = gtk_window_new (GTK_WINDOW_TOPLEVEL);	gtk_window_set_title (GTK_WINDOW (window), "CommService ver 2.0");	g_signal_connect (GTK_WINDOW (window), "configure_event",   G_CALLBACK (configure_event), NULL);	g_signal_connect (GTK_WINDOW (window), "delete_event",   G_CALLBACK (delete), NULL);	g_signal_connect (GTK_WINDOW (window), "motion_notify_event",   G_CALLBACK (motion_notify_event), NULL);	gtk_container_set_border_width (GTK_CONTAINER (window), 10);	gtk_widget_set_size_request (GTK_WIDGET (window), 800, 600);	gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);	table = gtk_table_new (20,1,FALSE);	gtk_container_add (GTK_CONTAINER (window), table);	menu = CreateMenu();	gtk_table_attach_defaults (GTK_TABLE (table), menu, 0, 1, 0, 1);	gtk_widget_show (menu);	textview = create_text();	gtk_table_attach_defaults (GTK_TABLE (table), textview, 0, 1,1, 20);	gtk_widget_show(textview);	gtk_widget_show (table);	gtk_widget_show(window);	// Get Application current path.	GetApplicationPath(argv[0]);	// --- Start Thread and Socket Service----//	ShowMessage("Service Starting...............................\n");	StartService();		gdk_threads_enter();	gtk_main ();	gdk_threads_leave();		return 0;}static GtkWidget *CreateMenu(){	GtkWidget *menu;	GtkWidget *menu_bar;    	GtkWidget *root_menu;    	GtkWidget *menu_items;	GtkWidget *hbox;	menu = gtk_menu_new ();            /* Create a new menu-item with a name... */        menu_items = gtk_menu_item_new_with_label ("重啟線程");	  /* ...and add it to the menu. */       gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_items);	    /* Do something interesting when the menuitem is selected */	g_signal_connect_swapped (menu_items, "activate", G_CALLBACK (menuitem_response), 1);            /* Show the widget */        gtk_widget_show (menu_items);    	menu_items = gtk_menu_item_new_with_label ("關閉線程"); 	gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_items);	    /* Do something interesting when the menuitem is selected */	g_signal_connect_swapped (menu_items, "activate", G_CALLBACK (menuitem_response), 2);            /* Show the widget */        gtk_widget_show (menu_items);	menu_items = gtk_menu_item_new_with_label ("退出系統");	 gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_items);	    /* Do something interesting when the menuitem is selected */	g_signal_connect_swapped (menu_items, "activate", G_CALLBACK (menuitem_response),  3);            /* Show the widget */        gtk_widget_show (menu_items);    /* This is the root menu, and will be the label     * displayed on the menu bar.  There won't be a signal handler attached,     * as it only pops up the rest of the menu when pressed. */    	root_menu = gtk_menu_item_new_with_label ("運行");    	gtk_widget_show (root_menu);    /* Now we specify that we want our newly created "menu" to be the menu     * for the "root menu" */  	gtk_menu_item_set_submenu (GTK_MENU_ITEM (root_menu), menu);    /* Create a menu-bar to hold the menus and add it to our main window */   	menu_bar = gtk_menu_bar_new ();   //	gtk_box_pack_start (GTK_BOX (hbox), menu_bar, FALSE, FALSE, 2);//	gtk_container_add (GTK_CONTAINER (window), menu_bar);	gtk_widget_show (menu_bar);	gtk_menu_shell_append (GTK_MENU_SHELL (menu_bar), root_menu);	return menu_bar;}static void menuitem_response( gint menuitem ){   	 switch(menuitem)	{		case 1:  //Start			gdk_threads_init();			ShowMessage("Thread Restarting..........\n");			StartService();			break;		case 2: //Stop			gThreadRunning=0;			break;		case 3:			onExit();		//-------------test------------		default:			break;	}}gboolean onExit(){	int result;	char s[10];	//	gdk_threads_init();	result = QMessageBox(NULL,"是否要退出系統?");		if(result == 1)	{		//----Close Socket Thread----------//		gThreadRunning=0;		gtk_main_quit();			return FALSE;	}	return TRUE;}static gboolean delete(GtkWidget *widget, GdkEvent  *event,   gpointer   data ){	int result;	char s[10];	result = QMessageBox(widget,"是否要退出系統?");	if(result == 1)	{		//----Close Socket Thread----------//		gThreadRunning=0;		//	while(gThreadStop > 0){	//		sprintf(s,"%d",gThreadStop);	//		ShowMessage(s);			//		sleep(1000);	//	}		gtk_main_quit();			return FALSE;	}	return TRUE;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品影院一区二区久久久| 亚洲激情第一区| 国产美女精品在线| 久久婷婷久久一区二区三区| 国产一区三区三区| 国产精品久久久久桃色tv| 色系网站成人免费| 亚洲va欧美va国产va天堂影院| 欧美日韩视频专区在线播放| 美女一区二区在线观看| 久久女同精品一区二区| 成人激情视频网站| 亚洲午夜av在线| 精品国产一区二区三区av性色| 国产综合色精品一区二区三区| 久久精品人人做| 色综合中文字幕| 蜜臀精品久久久久久蜜臀| 久久久久久夜精品精品免费| 91性感美女视频| 蜜桃视频在线观看一区二区| 国产女人18水真多18精品一级做 | 欧美性极品少妇| 蜜桃精品在线观看| 国产精品国产三级国产三级人妇| 欧美性色综合网| 国产99久久久精品| 天天综合天天综合色| 国产免费久久精品| 欧美一区二区在线不卡| 成人激情图片网| 麻豆精品久久久| 一区二区三区免费网站| 日韩欧美国产wwwww| 色综合久久综合中文综合网| 美女视频免费一区| 一区二区三区四区在线| 2019国产精品| 欧美性三三影院| 99精品久久只有精品| 看国产成人h片视频| 一区二区三区蜜桃网| 中文字幕乱码日本亚洲一区二区| 欧美另类videos死尸| 不卡的av中国片| 国产最新精品精品你懂的| 亚洲成在人线在线播放| 亚洲欧美日韩中文字幕一区二区三区| 欧美成人一级视频| 欧美二区在线观看| 欧美午夜电影在线播放| 色综合中文字幕国产 | 国产精品美女久久久久久久久 | www.欧美日韩国产在线| 极品少妇xxxx精品少妇偷拍| 亚洲国产欧美另类丝袜| 国产精品毛片久久久久久| wwww国产精品欧美| 欧美v日韩v国产v| 欧美一级在线免费| 欧美精三区欧美精三区| 欧洲一区在线观看| 一本一本大道香蕉久在线精品| 国产aⅴ精品一区二区三区色成熟| 久久国产欧美日韩精品| 婷婷综合五月天| 五月激情综合婷婷| 亚洲午夜久久久久久久久电影网| 亚洲日本免费电影| 国产精品女同互慰在线看| 中文字幕第一区第二区| 中文字幕欧美激情一区| 国产精品久久久久四虎| 国产精品视频一二三| 国产精品久久三| 中文字幕制服丝袜成人av| 亚洲图片激情小说| 亚洲人成在线播放网站岛国| 亚洲色图在线播放| 亚洲香蕉伊在人在线观| 亚洲成人自拍网| 男女男精品网站| 国产制服丝袜一区| 不卡视频在线看| 一本色道久久综合亚洲91| 欧美性色黄大片手机版| 3751色影院一区二区三区| 日韩视频国产视频| 久久精品一级爱片| 国产精品毛片a∨一区二区三区| 成人免费在线观看入口| 一区二区视频免费在线观看| 亚洲高清视频的网址| 免费在线观看一区二区三区| 久久99国产精品麻豆| 国产成人免费视频网站 | 欧美性猛片xxxx免费看久爱| 欧美日韩另类国产亚洲欧美一级| 欧美巨大另类极品videosbest | 国产精品视频yy9299一区| 日韩美女精品在线| 午夜久久久久久久久久一区二区| 免费人成精品欧美精品| 国产精品一区二区不卡| 色婷婷综合五月| 91精品国产综合久久国产大片| 精品久久久久99| 中文字幕一区二区在线播放| 亚洲一区二区四区蜜桃| 日本不卡不码高清免费观看| 国产精品一区二区久激情瑜伽 | 懂色中文一区二区在线播放| 色综合天天综合网天天看片| 日韩欧美国产高清| 亚洲色图欧美在线| 久久91精品国产91久久小草 | 激情久久五月天| 日本韩国欧美一区二区三区| 91精品国产综合久久香蕉麻豆 | 国产不卡一区视频| 欧美在线视频你懂得| 精品国产免费人成在线观看| 最新日韩av在线| 久久国产精品无码网站| 在线免费观看成人短视频| 久久综合九色综合97_久久久| 亚洲欧美日韩在线| 国产一区二区剧情av在线| 欧美日韩一区二区欧美激情| 国产精品亲子伦对白| 蜜桃久久久久久久| 欧美日韩中文精品| 国产精品美女久久久久久2018| 蜜乳av一区二区三区| 在线日韩国产精品| 国产精品女主播在线观看| 久久成人羞羞网站| 在线不卡中文字幕| 亚洲国产一区二区视频| 成人精品免费视频| 久久精品这里都是精品| 人人超碰91尤物精品国产| 在线观看亚洲成人| **性色生活片久久毛片| 高清不卡一区二区在线| 欧美v国产在线一区二区三区| 亚洲va国产va欧美va观看| 色系网站成人免费| 亚洲视频在线一区二区| 国产凹凸在线观看一区二区| 欧美tk—视频vk| 裸体一区二区三区| 7777精品伊人久久久大香线蕉超级流畅 | 国产嫩草影院久久久久| 国产乱码一区二区三区| 欧美videossexotv100| 秋霞午夜av一区二区三区| 欧美精三区欧美精三区| 亚洲不卡av一区二区三区| 欧美日韩三级视频| 亚洲电影在线播放| 欧美欧美午夜aⅴ在线观看| 婷婷综合在线观看| 91精品中文字幕一区二区三区| 亚洲成av人片一区二区三区 | 波多野结衣亚洲| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 久久99精品国产91久久来源| 欧美一区二区三区人| 久久精品国产久精国产| 精品久久久久久久久久久久久久久 | 亚洲欧洲精品一区二区精品久久久 | 日日夜夜精品视频免费| 欧美精品 日韩| 免费一级欧美片在线观看| 日韩欧美视频在线| 韩日精品视频一区| 欧美激情艳妇裸体舞| av一区二区三区四区| 亚洲影院理伦片| 欧美久久久久中文字幕| 麻豆91在线播放| 久久久精品中文字幕麻豆发布| 国产成人免费视频网站| 亚洲天堂av一区| 欧美日本一区二区| 精品一区二区久久久| 欧美激情一区二区三区不卡 | 99九九99九九九视频精品| 亚洲精品欧美专区| 91精品中文字幕一区二区三区| 韩国一区二区三区| 亚洲视频中文字幕| 欧美一级搡bbbb搡bbbb| 国产乱国产乱300精品| 亚洲视频一区二区免费在线观看| 欧美三区在线视频| 国产精品456| 亚洲h动漫在线| 久久久久久久久99精品|