radmin服务端:Radmin服务端保持连接不断问题分析和解决来源: 发布时间:星期六, 2009年9月12日 浏览:0次 评论:0
1、问题描述
Radmin是 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() QUOTE: Proto Local Address Foreign Address State TCP 0.0.0.0:135 0.0.0.0:0 LISTENING TCP 0.0.0.0:445 0.0.0.0:0 LISTENING TCP 0.0.0.0:1030 0.0.0.0:0 LISTENING TCP 127.0.0.1:1031 0.0.0.0:0 LISTENING TCP 192.168.11.1:139 0.0.0.0:0 LISTENING TCP 192.168.72.1:139 0.0.0.0:0 LISTENING TCP 192.168.168.220:1030 192.168.168.221:1034 TIME_WAIT UDP 0.0.0.0:445 *:* UDP 0.0.0.0:1026 *:* UDP 127.0.0.1:123 *:* UDP 127.0.0.1:1900 *:* UDP 192.168.11.1:123 *:* UDP 192.168.11.1:137 *:* UDP 192.168.11.1:138 *:* UDP 192.168.11.1:1900 *:* UDP 192.168.72.1:123 *:* UDP 192.168.72.1:137 *:* UDP 192.168.72.1:138 *:* UDP 192.168.72.1:1900 *:* UDP 192.168.168.220:123 *:* UDP 192.168.168.220:1900 *:* 2、问题分析 初步猜测应该是 ![]() ![]() ![]() 调试Radmin服务端 ![]() ![]() ![]() ![]() 第 ![]() CODE: 71A42E30 > 8BFF MOV EDI,EDI 71A42E32 55 PUSH EBP 71A42E33 8BEC MOV EBP,ESP 71A42E35 837D 0C 00 CMP DWORD PTR SS:[EBP+C],0 71A42E39 0F84 25010000 JE WSOCK32.71A42F64 71A42E3F 8B45 10 MOV EAX,DWORD PTR SS:[EBP+10] 71A42E42 837D 0C 06 CMP DWORD PTR SS:[EBP+C],6 71A42E46 8B4D 14 MOV ECX,DWORD PTR SS:[EBP+14] 71A42E49 74 75 JE SHORT WSOCK32.71A42EC0 71A42E4B FF75 18 PUSH DWORD PTR SS:[EBP+18] 71A42E4E 51 PUSH ECX 71A42E4F 50 PUSH EAX 71A42E50 FF75 0C PUSH DWORD PTR SS:[EBP+C] 71A42E53 FF75 08 PUSH DWORD PTR SS:[EBP+8] 71A42E56 E8 09000000 CALL 71A42E5B 5D POP EBP 71A42E5C C2 1400 RETN 14 71A42E5F 90 NOP 71A42E60 90 NOP 71A42E61 90 NOP 71A42E62 90 NOP 71A42E63 90 NOP 71A42E64 - FF25 0010A471 JMP DWORD PTR DS:[<&WS2_32.#21__ ![]() ![]() 察看堆栈: CODE: 0012F808 0096D367 /CALL 到 ![]() 0012F80C 0000007C |Socket = 7C 0012F810 0000FFFF |Level = SOL_SOCKET 0012F814 00000080 |Option = SO_LINGER 0012F818 0012F844 |Data = 0012F844 0012F81C 00000004 \DataSize = 4 0012F820 0000FFFF 0012F824 0012F84C 0012F828 /0012F850 0012F82C |009652F2 返回到 009652F2 来自 0096D340 0012F830 |00000080 0012F834 |0012F844 0012F838 |00000004 0012F83C |0012F870 0012F840 |001D0406 0012F844 |00010001 0012F848 |0012F870 0012F84C |0000007C 0012F850 ]0012F884 [Copy to clipboard] 可以看到 ![]() ![]() 第 2次断点: CODE: 71A42E30 > 8BFF MOV EDI,EDI 71A42E32 55 PUSH EBP 71A42E33 8BEC MOV EBP,ESP 71A42E35 837D 0C 00 CMP DWORD PTR SS:[EBP+C],0 71A42E39 0F84 25010000 JE WSOCK32.71A42F64 71A42E3F 8B45 10 MOV EAX,DWORD PTR SS:[EBP+10] 71A42E42 837D 0C 06 CMP DWORD PTR SS:[EBP+C],6 71A42E46 8B4D 14 MOV ECX,DWORD PTR SS:[EBP+14] 71A42E49 74 75 JE SHORT WSOCK32.71A42EC0 71A42E4B FF75 18 PUSH DWORD PTR SS:[EBP+18] 71A42E4E 51 PUSH ECX 71A42E4F 50 PUSH EAX 71A42E50 FF75 0C PUSH DWORD PTR SS:[EBP+C] 71A42E53 FF75 08 PUSH DWORD PTR SS:[EBP+8] 71A42E56 E8 09000000 CALL 71A42E5B 5D POP EBP 71A42E5C C2 1400 RETN 14 堆栈: CODE: 0012F80C 0096D367 /CALL 到 ![]() 0012F810 00000078 |Socket = 78 0012F814 0000FFFF |Level = SOL_SOCKET 0012F818 00000080 |Option = SO_LINGER 0012F81C 0012F84C |Data = 0012F84C 0012F820 00000004 \DataSize = 4 0012F824 0000FFFF 0012F828 0012F848 0012F82C /0012F850 0012F830 |00965419 返回到 00965419 来自 0096D340 0012F834 |00000080 0012F838 |0012F84C 0012F83C |00000004 0012F840 |0012F864 0012F844 |0012F870 0012F848 |00000078 0012F84C |00010001 0012F850 ]0012F884 可见第 ![]() F9,没有下个断点 ![]() ![]() ![]() QUOTE: /* 当连接中断时 ![]() * 被传输 ![]() ![]() ![]() ![]() * linger ![]() ![]() ![]() ![]() ![]() * struct linger * { * ![]() ![]() ![]() ![]() * ![]() ![]() ![]() * }; * 如果l_onoff为0 ![]() ![]() ![]() ![]() * l_linger字段则指明延迟关闭 ![]() */ 更具体 ![]() 若设置了SO_LINGER(亦即linger结构中 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 若设置了SO_LINGER并确定了非零 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 若在 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 这是网上 ![]() 主要是影响close ![]() ![]() 知道了问题 ![]() ![]() ![]() CODE: 0012F80C 0096D367 /CALL 到 ![]() 0012F810 00000078 |Socket = 78 0012F814 0000FFFF |Level = SOL_SOCKET 0012F818 00000080 |Option = SO_LINGER 0012F81C 0012F84C |Data = 0012F84C 0012F820 00000004 \DataSize = 4 0012F824 0000FFFF 0012F828 0012F848 0012F82C /0012F850 0012F830 |00965419 返回到 00965419 来自 0096D340 0012F834 |00000080 0012F838 |0012F84C 0012F83C |00000004 0012F840 |0012F864 0012F844 |0012F870 0012F848 |00000078 0012F84C |00010100 //原来 ![]() ![]() F9运行 ![]() ![]() ![]() ![]() ![]() ![]() ![]() 3、Radmin修改 Radmin ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 提示:如果要重复我 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0
相关文章读者评论发表评论 |