一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - 易語言 - 易語言實(shí)現(xiàn)多線程驗(yàn)證代理是否有效的代碼

易語言實(shí)現(xiàn)多線程驗(yàn)證代理是否有效的代碼

2022-02-21 16:24易語言源碼教程 易語言

今天小編就為大家分享一篇關(guān)于易語言實(shí)現(xiàn)多線程驗(yàn)證代理是否有效的代碼,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧

載入程序

?
1
2
3
4
5
.版本 2
.程序集 啟動(dòng)
.子程序 _啟動(dòng)子程序, 整數(shù)型
載入 (_主窗口, , 假)
返回 (0)

多線程的方式驗(yàn)證ip的代碼

此功能需要加載魚刺類_線程操作模塊和魚刺類_HTTP模塊

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
.版本 2
.支持庫 iext
.程序集 主窗口程序集
.程序集變量 線程池, 魚刺類_線程池Ex, , , 框架
.程序集變量 臨界, 魚刺類_臨界許可
.程序集變量 線程, 魚刺類_線程操作
.程序集變量 驗(yàn)證網(wǎng)址, 文本型, , , 配置
.程序集變量 驗(yàn)證字符串, 文本型
.程序集變量 是否UTF解碼, 邏輯型
.程序集變量 連接超時(shí), 整數(shù)型
.程序集變量 驗(yàn)證超時(shí), 整數(shù)型
.程序集變量 已完成數(shù)量, 整數(shù)型, , , 記錄
.程序集變量 有效數(shù)量, 整數(shù)型
.程序集變量 失效數(shù)量, 整數(shù)型
.程序集變量 保證顯示索引, 整數(shù)型
.子程序 _按鈕_測(cè)試_被單擊
.局部變量 測(cè)試, 魚刺類_線程操作, 靜態(tài)
.局部變量 bool, 邏輯型
按鈕_測(cè)試.禁止 = 真
驗(yàn)證網(wǎng)址 = 編輯框_驗(yàn)證網(wǎng)址.內(nèi)容
驗(yàn)證字符串 = 編輯框_驗(yàn)證字符串.內(nèi)容
是否UTF解碼 = 選擇框_UTF解碼.選中
.如果真 (驗(yàn)證網(wǎng)址 = “” 或 驗(yàn)證字符串 = “”)
  信息框 (“網(wǎng)址或字符串填寫錯(cuò)誤!”, 48 + 65536, )
  按鈕_測(cè)試.禁止 = 假
  返回 ()
.如果真結(jié)束
bool = 測(cè)試.創(chuàng)建 (&測(cè)試驗(yàn)證網(wǎng)址)
.如果真 (bool = 真)
  測(cè)試.等待2 ()
  .判斷開始 (測(cè)試.取返回值 () = 1) ' 利用線程返回狀態(tài)判斷測(cè)試是否成功
    信息框 (“測(cè)試成功!驗(yàn)證網(wǎng)址和關(guān)鍵字可用”, 64 + 65536, )
  .默認(rèn)
    信息框 (“測(cè)試失敗!驗(yàn)證網(wǎng)址和關(guān)鍵字符串不可用”, 48 + 65536, )
  .判斷結(jié)束
.如果真結(jié)束
按鈕_測(cè)試.禁止 = 假
.子程序 測(cè)試驗(yàn)證網(wǎng)址, 整數(shù)型
.局部變量 http, WinHttp
.局部變量 str, 文本型
http.Open (“GET”, 驗(yàn)證網(wǎng)址)
http.Set_User_Agent ()
http.Send ()
.判斷開始 (是否UTF解碼 = 真)
  str = http.GetResponseTextUtf8 ()
.默認(rèn)
  str = http.GetResponseText ()
.判斷結(jié)束
.如果真 (尋找文本 (str, 驗(yàn)證字符串, , 假) ≠ -1)
  返回 (1) ' 返回狀態(tài)用于判斷是否成功
.如果真結(jié)束
返回 (0)
.子程序 _按鈕_導(dǎo)入_被單擊
.局部變量 int, 整數(shù)型
.局部變量 str, 文本型
.局部變量 strs, 文本型, , "0"
.局部變量 ip, 文本型
.局部變量 端口, 文本型
.局部變量 o, 整數(shù)型
通用對(duì)話框_瀏覽.類型 = 0
通用對(duì)話框_瀏覽.過濾器 = “文本文檔(*.txt)|*.txt”
.如果真 (通用對(duì)話框_瀏覽.打開 () = 假)
  返回 ()
.如果真結(jié)束
按鈕_導(dǎo)入.禁止 = 真
int = 打開文件 (通用對(duì)話框_瀏覽.文件名, 1, )
.如果真 (int = 0)
  按鈕_導(dǎo)入.禁止 = 假
  返回 ()
.如果真結(jié)束
.判斷循環(huán)首 (是否在文件尾 (int, ) = 假)
  str = 讀入一行 (int)
  str = 刪首尾空 (str)
  strs = 分割文本 (str, “:”, 2)
  .如果真 (取數(shù)組成員數(shù) (strs) = 2)
    ip = strs [1]
    端口 = strs [2]
    .如果真 (ip ≠ “” 且 端口 ≠ “”)
      o = 列表_代理.插入表項(xiàng) (, , , 0, , )
      列表_代理.置標(biāo)題 (o, 0, 到文本 (o + 1))
      列表_代理.置標(biāo)題 (o, 1, ip)
      列表_代理.置標(biāo)題 (o, 2, 端口)
      列表_代理.置標(biāo)題 (o, 3, “**”)
      列表_代理.置標(biāo)題 (o, 4, “-”)
      _處理事件 ()
    .如果真結(jié)束
  .如果真結(jié)束
.判斷循環(huán)尾 ()
關(guān)閉文件 (int)
狀態(tài)條_狀態(tài).置文本 (0, “代理總數(shù):” + 到文本 (列表_代理.取表項(xiàng)數(shù) ()))
按鈕_導(dǎo)入.禁止 = 假
.子程序 _按鈕_導(dǎo)出_被單擊
.局部變量 bool, 邏輯型
.局部變量 i, 整數(shù)型
.局部變量 int, 整數(shù)型
.局部變量 ip, 文本型
.局部變量 端口, 文本型
.局部變量 time, 文本型
.局部變量 stop, 文本型
.局部變量 text, 文本型
.局部變量 len, 整數(shù)型
.如果真 (列表_代理.取表項(xiàng)數(shù) () < 1)
  信息框 (“沒代理可導(dǎo)出”, 48 + 65536, , )
  返回 ()
.如果真結(jié)束
bool = 信息框 (“是否只導(dǎo)出有效代理”, #是否鈕 + 48 + 65536, ) = #是鈕
通用對(duì)話框_瀏覽.類型 = 1
通用對(duì)話框_瀏覽.過濾器 = “文本文檔(*.txt)|*.txt”
.如果真 (通用對(duì)話框_瀏覽.打開 () = 假)
  返回 ()
.如果真結(jié)束
按鈕_導(dǎo)出.禁止 = 真
int = 打開文件 (通用對(duì)話框_瀏覽.文件名, 4, )
移到文件尾 (int)
.變量循環(huán)首 (0, 列表_代理.取表項(xiàng)數(shù) () - 1, 1, i)
  _處理事件 ()
  stop = 列表_代理.取標(biāo)題 (i, 4)
  .如果真 (bool = 真 且 stop ≠ “驗(yàn)證成功”)
    到循環(huán)尾 ()
  .如果真結(jié)束
  ip = 列表_代理.取標(biāo)題 (i, 1)
  端口 = 列表_代理.取標(biāo)題 (i, 2)
  time = 列表_代理.取標(biāo)題 (i, 3)
  text = ip + “:” + 端口 + “----” + time
  .如果真 (bool = 假)
    text = text + “----” + stop
  .如果真結(jié)束
  寫文本行 (int, text)
  len = len + 1
.變量循環(huán)尾 ()
關(guān)閉文件 (int)
信息框 (“保存:” + 通用對(duì)話框_瀏覽.文件名 + “ 成功!” + #換行符 + “共導(dǎo)出:” + 到文本 (len) + “ 條。”, 64 + 65536, )
按鈕_導(dǎo)出.禁止 = 假
.子程序 _按鈕_開始停止_被單擊
.局部變量 text, 文本型
.局部變量 bool, 邏輯型
.局部變量 len, 整數(shù)型
按鈕_開始停止.禁止 = 真
text = 按鈕_開始停止.標(biāo)題
.判斷開始 (text = “開始驗(yàn)證”)
  len = 列表_代理.取表項(xiàng)數(shù) ()
  .如果真 (len < 1)
    信息框 (“請(qǐng)先導(dǎo)入要驗(yàn)證的代理”, 48 + 65536, )
    按鈕_開始停止.禁止 = 假
    返回 ()
  .如果真結(jié)束
  驗(yàn)證網(wǎng)址 = 刪首尾空 (編輯框_驗(yàn)證網(wǎng)址.內(nèi)容)
  驗(yàn)證字符串 = 編輯框_驗(yàn)證字符串.內(nèi)容
  .如果真 (驗(yàn)證網(wǎng)址 = “” 或 驗(yàn)證字符串 = “”)
    信息框 (“驗(yàn)證網(wǎng)址或字符串不正確!”, 48 + 65536, )
    按鈕_開始停止.禁止 = 假
    返回 ()
  .如果真結(jié)束
  是否UTF解碼 = 選擇框_UTF解碼.選中
  連接超時(shí) = 到整數(shù) (編輯框_連接超時(shí).內(nèi)容)
  驗(yàn)證超時(shí) = 到整數(shù) (編輯框_驗(yàn)證超時(shí).內(nèi)容)
  連續(xù)賦值 (0, 已完成數(shù)量, 有效數(shù)量, 失效數(shù)量, 保證顯示索引)
  更新狀態(tài)條 ()
  bool = 線程.創(chuàng)建 (&工作)
  .如果真 (bool = 真)
    返回 ()
  .如果真結(jié)束
.判斷 (text = “停止驗(yàn)證”)
  按鈕_開始停止.標(biāo)題 = “正在停止”
  按鈕_暫停繼續(xù).禁止 = 真
  按鈕_暫停繼續(xù).標(biāo)題 = “暫停驗(yàn)證”
  線程池.銷毀 (0)
  線程.等待2 ()
  按鈕_開始停止.標(biāo)題 = “開始驗(yàn)證”
.默認(rèn)
.判斷結(jié)束
按鈕_開始停止.禁止 = 假
.子程序 _按鈕_暫停繼續(xù)_被單擊
.局部變量 text, 文本型
按鈕_暫停繼續(xù).禁止 = 真
text = 按鈕_暫停繼續(xù).標(biāo)題
.判斷開始 (text = “暫停驗(yàn)證”)
  線程池.暫停 ()
  按鈕_暫停繼續(xù).標(biāo)題 = “繼續(xù)驗(yàn)證”
.判斷 (text = “繼續(xù)驗(yàn)證”)
  線程池.繼續(xù) ()
  按鈕_暫停繼續(xù).標(biāo)題 = “暫停驗(yàn)證”
.默認(rèn)
.判斷結(jié)束
按鈕_暫停繼續(xù).禁止 = 假
.子程序 工作
.局部變量 并發(fā)線程數(shù), 整數(shù)型
.局部變量 bool, 邏輯型
.局部變量 len, 整數(shù)型
.局部變量 i, 整數(shù)型
.局部變量 空閑線程數(shù), 整數(shù)型
.局部變量 int, 整數(shù)型
按鈕_開始停止.標(biāo)題 = “正在啟動(dòng)”
.如果真 (連接超時(shí) < 500)
  連接超時(shí) = 500
.如果真結(jié)束
.如果真 (驗(yàn)證超時(shí) < 500)
  驗(yàn)證超時(shí) = 500
.如果真結(jié)束
臨界.進(jìn)入 ()
并發(fā)線程數(shù) = 到整數(shù) (編輯框_并發(fā)線程數(shù).內(nèi)容)
臨界.退出 ()
.如果真 (并發(fā)線程數(shù) < 1)
  并發(fā)線程數(shù) = 1
.如果真結(jié)束
bool = 線程池.創(chuàng)建 (并發(fā)線程數(shù))
.如果真 (bool = 假)
  臨界.進(jìn)入 ()
  按鈕_開始停止.標(biāo)題 = “開始驗(yàn)證”
  按鈕_開始停止.禁止 = 假
  臨界.退出 ()
  返回 ()
.如果真結(jié)束
臨界.進(jìn)入 ()
按鈕_開始停止.標(biāo)題 = “停止驗(yàn)證”
按鈕_開始停止.禁止 = 假
按鈕_暫停繼續(xù).標(biāo)題 = “暫停驗(yàn)證”
按鈕_暫停繼續(xù).禁止 = 假
len = 列表_代理.取表項(xiàng)數(shù) () - 1 ' 列表索引從0開始
臨界.退出 ()
i = 0
.判斷循環(huán)首 (i ≤ len)
  空閑線程數(shù) = 線程池.取_空閑線程數(shù) ()
  .如果真 (空閑線程數(shù) > 0)
    int = len - i + 1
    .如果真 (int > 空閑線程數(shù))
      int = 空閑線程數(shù)
    .如果真結(jié)束
    .計(jì)次循環(huán)首 (int, )
      線程池.投遞任務(wù) (&驗(yàn)證子程序, i)
      i = i + 1
    .計(jì)次循環(huán)尾 ()
  .如果真結(jié)束
  bool = 線程池.等待任務(wù)動(dòng)態(tài) ()
  .如果真 (bool = 假) ' 返回假 表示線程池被執(zhí)行銷毀 也表示用戶手動(dòng)點(diǎn)了停止
    返回 ()
  .如果真結(jié)束
  更新狀態(tài)條 ()
.判斷循環(huán)尾 ()
' 等待剩余任務(wù)執(zhí)行完畢
.判斷循環(huán)首 (線程池.取_是否空閑 () = 假)
  .如果真 (線程池.取_狀態(tài) () ≠ #線程池_正在工作)
    返回 ()
  .如果真結(jié)束
  bool = 線程池.等待任務(wù)動(dòng)態(tài) (100)
  .如果真 (bool = 真)
    更新狀態(tài)條 ()
  .如果真結(jié)束
.判斷循環(huán)尾 ()
更新狀態(tài)條 ()
' 執(zhí)行停止
臨界.進(jìn)入 ()
按鈕_開始停止.禁止 = 真
按鈕_開始停止.標(biāo)題 = “正在停止”
按鈕_暫停繼續(xù).禁止 = 真
按鈕_暫停繼續(xù).標(biāo)題 = “暫停驗(yàn)證”
臨界.退出 ()
線程池.銷毀 (0)
信息框 (“驗(yàn)證完畢!” + #換行符 + “有效代理:” + 到文本 (有效數(shù)量) + #換行符 + “失效代理:” + 到文本 (失效數(shù)量), 64 + 65536, )
臨界.進(jìn)入 ()
按鈕_開始停止.標(biāo)題 = “開始驗(yàn)證”
按鈕_開始停止.禁止 = 假
臨界.退出 ()
.子程序 驗(yàn)證子程序
.參數(shù) i, 整數(shù)型
.局部變量 ip地址, 文本型
.局部變量 端口, 文本型
.局部變量 http, WinHttp
.局部變量 str, 文本型
.局部變量 time, 整數(shù)型
.局部變量 timing, 整數(shù)型
.局部變量 bool, 邏輯型
.如果真 (線程池.取_狀態(tài) () ≠ #線程池_正在工作)
  返回 ()
.如果真結(jié)束
臨界.進(jìn)入 ()
ip地址 = 列表_代理.取標(biāo)題 (i, 1)
端口 = 列表_代理.取標(biāo)題 (i, 2)
臨界.退出 ()
.如果真 (ip地址 = “” 或 端口 = “”)
  原子_遞增 (已完成數(shù)量)
  返回 ()
.如果真結(jié)束
time = 取啟動(dòng)時(shí)間 ()
http.SetProxy (2, ip地址 + “:” + 端口)
http.SetTimeouts (連接超時(shí), 連接超時(shí), 驗(yàn)證超時(shí), 驗(yàn)證超時(shí))
http.Open (“GET”, 驗(yàn)證網(wǎng)址, 真)
http.Set_User_Agent ()
http.Send ()
timing = 驗(yàn)證超時(shí) \ 1000 + 選擇 (驗(yàn)證超時(shí) % 1000 > 0, 1, 0)
.計(jì)次循環(huán)首 (timing, ) ' 這樣寫是為了能快速相應(yīng)停止
  bool = http.WaitForResponse (1) ' 單位 秒
  .如果真 (bool = 真)
    跳出循環(huán) ()
  .如果真結(jié)束
  .如果真 (線程池.取_狀態(tài) () ≠ #線程池_正在工作) ' 當(dāng)用戶手動(dòng)停止時(shí) 線程池狀態(tài)就變了 這樣就能觸發(fā)返回了
    http.Abort () ' 終止連接
    原子_遞增 (已完成數(shù)量)
    返回 ()
  .如果真結(jié)束
.計(jì)次循環(huán)尾 ()
time = 取啟動(dòng)時(shí)間 () - time ' 算出超時(shí)
.判斷開始 (bool = 真)
  .判斷開始 (是否UTF解碼 = 真)
    str = http.GetResponseTextUtf8 ()
  .默認(rèn)
    str = http.GetResponseText ()
  .判斷結(jié)束
.默認(rèn)
  http.Abort ()
.判斷結(jié)束
.判斷開始 (str = “”)
  原子_遞增 (失效數(shù)量)
  設(shè)置表象 (i, “*/*”, 選擇 (time > 連接超時(shí), “驗(yàn)證失敗”, “連接超時(shí)”), 2)
.判斷 (尋找文本 (str, 驗(yàn)證字符串, , 假) ≠ -1)
  原子_遞增 (有效數(shù)量)
  設(shè)置表象 (i, 到文本 (time), “驗(yàn)證成功”, 選擇 (time < 10000, 1, 3))
.默認(rèn)
  原子_遞增 (失效數(shù)量)
  設(shè)置表象 (i, “*/*”, “驗(yàn)證失敗”, 2)
.判斷結(jié)束
原子_遞增 (已完成數(shù)量)
.子程序 設(shè)置表象
.參數(shù) index, 整數(shù)型
.參數(shù) time, 文本型
.參數(shù) stop, 文本型
.參數(shù) State, 整數(shù)型
臨界.進(jìn)入 ()
列表_代理.置標(biāo)題 (index, 3, time)
列表_代理.置標(biāo)題 (index, 4, stop)
列表_代理.置狀態(tài)圖片 (index, State)
.如果真 (index > 保證顯示索引)
  列表_代理.保證顯示 (index + 1)
  保證顯示索引 = index + 1
.如果真結(jié)束
臨界.退出 ()
.子程序 更新狀態(tài)條
臨界.進(jìn)入 ()
狀態(tài)條_狀態(tài).置文本 (1, “已完成驗(yàn)證:” + 到文本 (已完成數(shù)量))
狀態(tài)條_狀態(tài).置文本 (2, “有效代理數(shù):” + 到文本 (有效數(shù)量))
狀態(tài)條_狀態(tài).置文本 (3, “失效代理數(shù):” + 到文本 (失效數(shù)量))
臨界.退出 ()
.子程序 __主窗口_將被銷毀
線程池.銷毀 ()
' 防止用戶意外點(diǎn)擊紅叉叉

運(yùn)行結(jié)果:

易語言實(shí)現(xiàn)多線程驗(yàn)證代理是否有效的代碼

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)服務(wù)器之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 99久9在线视频 | avav一区| 鸥美三级 | 欧美成人手机 | 国产自精品| 无码人妻视频又大又粗欧美 | 亚洲第一天堂无码专区 | 息与子中文字幕在线 | 欧美日韩色图 | 14一15sexvideo日本| 日本 片 成人 在线 日b视频免费 | 97精品国产自在现线免费观看 | 毛片在线观看网站 | 亚洲精品电影天堂网 | 成人精品一区二区三区中文字幕 | 免费毛片在线观看 | 51xtv成人影院| 国产v在线播放 | 亚洲视频免费在线观看 | 国产在线观看一区 | 国语精彩对白2021 | 日韩欧美国产成人 | 欧美精品亚洲精品日韩1818 | 九九九九九九精品免费 | juy799大岛优香在线观看 | 99久久综合 | 国产精品刺激好大好爽视频 | 调教女警花穿环上班 | 沟厕okn系列在线播放 | 亚洲欧美日韩在线观看看另类 | 拍拍叫痛的无挡视频免费 | 福利社在线免费观看 | 久久国产精品免费网站 | 韩国悲惨事件30无删减在线 | 香蕉草莓视频 | 日日干影院 | 国内视频一区二区 | 欧美成人影院免费观 | 99re热这里只有精品 | 99九九成人免费视频精品 | 太大了轻点阿受不了小说h 四色6677最新永久网站 |