diff -urN rt_v32/Makefile rt_v33/Makefile --- rt_v32/Makefile 2018-05-01 23:19:45.000000000 +0900 +++ rt_v33/Makefile 2018-05-07 22:55:30.000000000 +0900 @@ -6,10 +6,10 @@ all: cross rt cross: cross.c $(OBJS) - gcc -DSRV_CROSS -o $@ cross.c $(OBJS) $(LIBS) + gcc -Wall -DSRV_CROSS -o $@ cross.c $(OBJS) $(LIBS) rt: rt.c cross.c $(OBJS) - gcc -DSRV_RT -o $@ rt.c cross.c $(OBJS) $(LIBS) + gcc -Wall -DSRV_RT -o $@ rt.c cross.c $(OBJS) $(LIBS) clean: rm -f cross rt diff -urN rt_v32/cmd.py rt_v33/cmd.py --- rt_v32/cmd.py 2018-05-03 15:43:09.000000000 +0900 +++ rt_v33/cmd.py 2018-05-07 22:58:17.000000000 +0900 @@ -25,7 +25,9 @@ def func(sock): s = recv_nl(sock) - sock.sendall( cmd_exec(s) ) + r = cmd_exec(s) + sock.sendall(r) + sock.shutdown(socket.SHUT_RDWR) sock.close() if __name__ == "__main__": diff -urN rt_v32/dat.c rt_v33/dat.c --- rt_v32/dat.c 2018-05-01 23:14:27.000000000 +0900 +++ rt_v33/dat.c 2018-05-07 21:48:31.000000000 +0900 @@ -22,10 +22,12 @@ bp = unpack_vs(bp, &xx->ax.vs); break; case TYP_CX: - bp = COPY_FROM_BP(bp, xx->cx); + bp = COPY_FROM_BP(bp, xx->cx.r); + bp = COPY_FROM_BP(bp, xx->cx.rev); break; case TYP_FX: - bp = COPY_FROM_BP(bp, xx->fx); + bp = COPY_FROM_BP(bp, xx->fx.dz); + bp = COPY_FROM_BP(bp, xx->fx.rev); break; default: break; diff -urN rt_v32/sock.c rt_v33/sock.c --- rt_v32/sock.c 2018-05-01 23:12:51.000000000 +0900 +++ rt_v33/sock.c 2018-05-07 22:54:54.000000000 +0900 @@ -40,10 +40,11 @@ int srv_port(int port) { - int sfd; + int sfd, v = 1; struct sockaddr_in saddr; if((sfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) return -1; + setsockopt(sfd, SOL_SOCKET, SO_REUSEADDR, &v, sizeof(v)); memset(&saddr, 0, sizeof(saddr)); saddr.sin_family = AF_INET; saddr.sin_addr.s_addr = htonl(INADDR_ANY); diff -urN rt_v32/sock.py rt_v33/sock.py --- rt_v32/sock.py 2018-05-06 14:04:03.000000000 +0900 +++ rt_v33/sock.py 2018-05-07 22:47:44.000000000 +0900 @@ -165,6 +165,7 @@ port = srvs.get_port(name) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock.bind(('localhost', port)) sock.listen(5) diff -urN rt_v32/src_send.py rt_v33/src_send.py --- rt_v32/src_send.py 2018-05-03 21:01:36.000000000 +0900 +++ rt_v33/src_send.py 2018-05-07 23:17:07.000000000 +0900 @@ -8,6 +8,12 @@ def get_port(base, i): return srvs.base_port + base + i +def rmt_call(rmt_cmd): + cmd = 'echo "{}" | nc localhost {}'.format( rmt_cmd, get_port(rmt_base, 0) ) + print('rmt_call cmd={}'.format(cmd)) + r = ut.cmd_exec(cmd) + print( r.decode() ) + if __name__ == "__main__": lcl_base = 10 rmt_base = ut.arg_i('base', 20) @@ -21,19 +27,17 @@ d = './' print('d={} n={}'.format(d, n)) - rmt_cmd = 'echo "nc localhost -l {} | tar xf -" | nc localhost {}'.format( get_port(lcl_base, 9), get_port(rmt_base, 0) ) - print('rmt_cmd={}'.format(rmt_cmd)) - proc = ut.cmd_proc(rmt_cmd) + rmt_cmd = "nc -l {}