Why is it that , there are different versions of sdk or MIDP/CLDC versions in each model of phone?

I mean to say that , is there any standard version of java which i can follow for different phones.

Im currently using java wireless toolkit 2.0 and 1.0.4_01 from sun.

If i compile my code in 2.0 which uses java MIDP 2.0 i get no problem. But the same code when compiled under 1.0.4_01 which uses java MIDP 1.0 shows compilation errors in Socket.

How can choose the SDK or the exact version of MIDP which has support for sockets.

And is there and version of MIDP 1.0.x which has support for Socket.