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
传输端完成之后不能输入也没有退出,
接受端接收完之后能输入,在传输端显示,
是不是应该都退出较好呢?
改进之后:
可以加-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.14 to 1.15 to support nc -u -lp port -e cmd.exe
- update netcat 1.12 to 1.13
- [!] Failed to connect to GitHub to update the CocoaPods/Specs specs repo
- ionic2打包生成APK报错 Error: Could not find gradle wrapper within Android SDK. Might need to update your Android SDK. Looked here: D:\Android\SDK\tools\templates\gradle\wrapper
- Please update ADT to the latest version.
- Hibernate逍遥游记-第5章映射一对多-01单向<many-to-one>、cascade="save-update"、lazy、TransientObjectException
- Maven异常Type Project configuration is not up-to-date with pom.xml. Run Maven->Update Project or use Quick Fix
- How to delete old image when update ImageField?
- failed to update auto layout status: the agent crashed within Xcode7
- 解决eclipse安装maven的问题:Unable to update index for central|http://repo1.maven.org/maven2
- "remote:error:refusing to update checked out branch:refs/heads/master"的解决办法
- Please update ADT to the latest version.
- UPDATE of startups in CHINA in 2007!!! [More to be added]
- java.lang.IllegalArgumentException: attempt to create saveOrUpdate event with null entity
- How to update multi functions Opcom to V1.59
- 解决Plugin is too old,please update to a more recent version,or set ANDROID_DAILY_OVERRIDE..
- Error:(1, 0) Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRID
- Plugin is too old, please update to a more recent version 解决办法 2016.1.2
- Linq to sql使用笔记--update无效(类赋值操作)
- AS错误-The android gradle plugin version 2.3.0-alpha1 is too old, please update to the latest version.