本文主要是介绍update netcat 1.13 to 1.14,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
解释一下,当应用netcat的传输文件的功能的时候。
传输端完成之后不能输入也没有退出,
接受端接收完之后能输入,在传输端显示,
是不是应该都退出较好呢?
改进之后:
可以加-C选项,既接受端也可以先运行!直到接收完文件为止。
接收端和传输端都退出了。
update netcat 1.13 to 1.14
modify by chenghao0511##gmail.com 2013/05/04
why?
after:
remote:nc -lp 55 < doexec.c
local:nc ip 55 > test.c
remote:nc -lp 55 < doexec.c
_ [can not type in]
local:nc ip 55 > test.c
_ [can type in,remote out]
you can use:
nc -lp 66 < doexec.c
nc -C 127.0.0.1 66 >test.c
or:
nc -lp 66 > test1.c
nc -C 127.0.0.1 66 < doexec.c
how to update:
unsigned int o_wait = 0;
USHORT o_zero = 0;
+USHORT o_connect = 0;
rr = recv (fd, bigbuf_net, BIGSIZ, 0);
if (rr <= 0) {
Debug (("recv rr <= 0 "))
+ if (_isatty( 1 ) == 0) /* > recv = 0,fix by chenghao0511#gmail.com*/
+ exit(0);
FD_CLR (fd, ding1); /* net closed, we'll finish up... */
rr = read (0, bigbuf_in, BIGSIZ);
if (rr <= 0) { /* at end, or fukt, or ... */
close (0);
+ shutdown(fd, 0x02); /* by chenghao0511 */
+ closesocket (fd);
+ if(o_connect)
+ exit(0);
+ return (0);
} else {
rzleft = rr;
zp = bigbuf_in;
case 'C': /* connect then cycle back to start instead of exiting */
+ o_connect = 1;
cycle = 1;
break;
netcat 1.14 by chenghao0511
https://www.box.com/s/pdxeqd0021ahk4uw3mk5
nc -lp 66 > test1.c
nc -C 127.0.0.1 66 < doexec.c
上面的链接里没有考虑上述情况,因此,03-05-04,加入全局变量o_connect,如果有-C选项o_connect赋值为1。
+ if(o_connect)
+ exit(0);
这里的意思是数据传输完了之后退出程序,exit(0)。
netcat 1.142 by chenghao0511
https://www.box.com/s/nckg7gpwv09pqgr43emx
这篇关于update netcat 1.13 to 1.14的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!