Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 09 Dec 1997 21:25:16 +0100
From:      Mattias Pantzare <pantzer@ludd.luth.se>
To:        "Alex.Boisvert" <boia01@gel.usherb.ca>
Cc:        freebsd-java@FreeBSD.ORG
Subject:   Re: Beta JDK 1.1.2 port for FreeBSD 
Message-ID:  <199712092025.VAA26499@zed.ludd.luth.se>
In-Reply-To: Your message of "Mon, 08 Dec 1997 11:33:22 EST." <Pine.SOL.3.91.971208113006.19583A@castor> 

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multipart MIME message.

--==_Exmh_-14600911360
Content-Type: text/plain; charset=us-ascii

> I just uploaded a new port of Sun's JDK 1.1.2 for FreeBSD at:
> 
> "ftp://ftp.freebsd.org/pub/FreeBSD/incoming"
> 
> Right now, there are two files, but only one is the right one:
> 
> "jdk1.1.2-fbsd1.tgz.good"
> 
> This is a "beta" release for people on this list, it'll probably release
> another one in 2 weeks, after I get some initial comments on it.

It has multicast problems.

I get this when I run the attached test program:

pantzer@skalman ~/java/mcast >java MulticastServer 224.111.11.1 1234
Multicast Server listening on port:1234
java.net.SocketException: Inappropriate ioctl for device


The jdk1.1-kwhite port had the same problem, and the followig patch to 
src/freebsd/net/multicast.c fixed that in that port:

70c70
<   if (!IN_MULTICAST(mname.imr_multiaddr.s_addr)) {
---
>   if (!IN_MULTICAST(addrptr->address)) {
114c114
<   if (!IN_MULTICAST(mname.imr_multiaddr.s_addr)) {
---
>   if (!IN_MULTICAST(addrptr->address)) {


It was just a simple mater of changing byte order at the wrong place.

--==_Exmh_-14600911360
Content-Type: text/plain ; name="MulticastServer.java"; charset=us-ascii
Content-Description: MulticastServer.java
Content-Disposition: attachment; filename="MulticastServer.java"

import java.io.*;
import java.net.*;
import java.util.*;

// Run this classes as:
// java_g MulticastServer 224.111.11.1 1234
// java_g MulticastClient 224.111.11.1 1234
// 
class MulticastServer {
    public static void main(String argv[]) {
	if (argv.length!=2) {
	    System.out.println("java MulticastServer <multicast_addr> <port#>");
	    return;
	}
	try {
	    int port = Integer.parseInt(argv[1]);
	    MulticastSocket s = new MulticastSocket(port);
	    // MulticastSocket s = new MulticastSocket();
	    System.out.print("Multicast Server listening on port:");
	    System.out.println(s.getLocalPort());
	    
	    // join the multicast group
	    s.joinGroup(InetAddress.getByName(argv[0]));
	    
	    byte buf[] = new byte[15];
	    DatagramPacket dp = new DatagramPacket(buf, buf.length);
	    s.receive(dp);
	    System.out.print("Received from inet address: "
			     + dp.getAddress().toString());
	    System.out.println(" port number: " + dp.getPort());
	    System.out.println("Packet of length: " + dp.getLength());
	    for (int i=0; i<dp.getLength(); ++i)  System.out.println(buf[i]);
	    s.leaveGroup(InetAddress.getByName(argv[0]));
	    s.close();
	} catch (Exception e) {
    		System.out.println(e);
	}
    }
}

class MulticastClient {
  public static void main(String argv[]) {
    if (argv.length!=2) {
      System.out.println("java MulticastClient <multicast_addr> <port#>");
      return;
    }
    try {
      int port = Integer.parseInt(argv[1]);
      InetAddress in = InetAddress.getByName(argv[0]);
      MulticastSocket s = new MulticastSocket();
      byte buf[] = new byte[10];
      for (int i=0; i<buf.length; ++i)
	buf[i] = (byte)i;
      int ttl = 10;
      DatagramPacket dp = dp = new DatagramPacket(buf,buf.length, in, port);
      s.send(dp, (byte)ttl);
      System.out.print("Sent from port: " + s.getLocalPort());
      System.out.println(" to: " + dp.getPort());
      s.close();
    } catch (Exception e) {
      System.err.println(e);
    }
  }
}

--==_Exmh_-14600911360--





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199712092025.VAA26499>