Hi Steve and others, I'm trying to create socket implementation for a transport protocol different of TCP and UDP (in linux), but similar to TCP, since it is a oriented connection protocol. I want to integrate it into the JVM. So, I wrote a C to Java wrapper to call native methods by using JNI and when I run the connect test, after create the socket and the connect to a remote, I can send data through out this socket. But now I want to extend the java socket functions to support my new socket. I'd like to know what is the correct process to do this. There are so many classes, abstract classes and interfaces which I can use, and as I understood, I did the job as following, but I don't know if I'm doing the right stuffs since after some attempts I can't create the socket like I wish.
The steps that I'm following is: 1 - I create a class named NativeSocket.c which implements basic c methods, such as create socket, connect and so on. I also create a class NativeSocket.java which, by using JNI, I can call all native methods; 2 - I create a class named MySocketImpl which extends the SocketImpl abstract class and implement the abstract methods using my native implementation described in the step 1; 3 - I create I class named MySocketImplFactory which implements the SocketImplFactory interface, the single method createSocketImpl; 4 - The method createSocketImpl create and return a instance of MySocketImpl described in the step 2; 5 - I create a class named MySocket.java which extends java.net.Socket as follows: public class MySocket extends Socket { static { MySocketImplFactory aMySocketImplFactory = new MySocketImplFactory(); try { Socket.setSocketImplFactory(aMySocketImplFactory); } catch (IOException e) { e.printStackTrace(); } } public MySocket(String host, int port) throws IOException { super(InetAddress.getByName(host), port); } } 6 - I create a instance of MySocket.java like this: Socket mySocket = new MySocket("localhost", 10000); Is this the right steps to create my own socket implementation by set the socketimplfactory of the java.net.Socket class? When I create MySocket instance the method bind is called but I was expecting that the right method to be called is connect instand of bind. Why the bind method is called? BTW, what shoud I do in this bind method? I also try to understand the java internals implementation (the native codes) and in my case, do I have to worry about the SecurityManager or since I'm extend Socket implementation is this alredy done? Please, any clue/suggestion will be greatfully accepted. Thank you in advance, Leandro ---------------------------------------------------------------------- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]