您的位置:首页 > 其它

update netcat 1.13 to 1.14

2013-05-03 19:26 197 查看
解释一下,当应用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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐