this.groupname = groupname;
try{
sock = new Socket();
sock.bind(new InetSocketAddress(bind_addr,0));
sock.setSoTimeout(sock_read_timeout);
<BUG>sock.setSoLinger(true, 5);
</BUG>
sock.connect(new InetSocketAddress(router_host,router_port), sock_conn_timeout);
output = new DataOutputStream(sock.getOutputStream());
if(local_addr == null){

this.groupname = groupname;
try{
sock = new Socket();
sock.bind(new InetSocketAddress(bind_addr,0));
sock.setSoTimeout(sock_read_timeout);
sock.setSoLinger(true, 2);
sock.connect(new InetSocketAddress(router_host,router_port), sock_conn_timeout);
output = new DataOutputStream(sock.getOutputStream());
if(local_addr == null){
