Client Server in J2ME (Socket Programming sample)

By: David Hemphill Emailed: 1728 times Printed: 2331 times    

Latest comments
By: rohit kumar - how this program is work
By: Kirti - Hi..thx for the hadoop in
By: Spijker - I have altered the code a
By: ali mohammed - why we use the java in ne
By: ali mohammed - why we use the java in ne
By: mizhelle - when I exported the data
By: raul - no output as well, i'm ge
By: Rajesh - thanx very much...
By: Suindu De - Suppose we are executing

Sockets are different than datagrams because they use a connection-based paradigm to transmit data. This means that both a sender and a receiver must be running and establish a communication channel for data to be exchanged. To use a real-world analogy, a socket connection is like calling a friend on the telephone. If the friend does not answer, a conversation cannot take place. Datagrams on the other hand are more like sending a letter to a friend, where a note is placed into an envelope, addressed, and mailed.

The following code demonstrates how to set up a listener to monitor a port for an inbound socket connection.


try
{
  ServerSocketConnection ssc = (ServerSocketConnection) 
  Connector.open("socket://:9002");
  StreamConnection sc = null;
  InputStream is = null;
  try{
    sc = ssc.acceptAndOpen();
    is = sc.openInputStream();
    int ch = 0;
    StringBuffer sb = new StringBuffer();
    while ((ch = is.read()) != -1){
      sb.append((char)ch);
    }
    System.out.println(sb.toString());
  } finally{
      ssc.close();
      sc.close();
      is.close();
  }
} catch (IOException x) {
    x.printStackTrace();
}
In this example a ServerSocketConnection is opened on port 9002. This type of connection is used for sole purpose of listening for an inbound socket connection. The code goes into a wait state when the acceptAndOpen() method is called. When a socket connection is established, the acceptAndOpen() method returns with an instance of a SocketConnection. Opening an input stream on this connection allows data to be read from the transmission.

The next example demonstrates the code required by the client to initiate the socket connection.


try{
  SocketConnection sc = (SocketConnection) 
    Connector.open("socket://localhost:9002");
  OutputStream os = null;
  try{
    os = sc.openOutputStream();
    byte[] data = "Hello from a socket!".getBytes();
    os.write(data);
  } finally{
      sc.close();
      os.close();
  }
} catch (IOException x){
	x.printStackTrace();
}
In this example a SocketConnection is established on port 9002 of the local machine. When using sockets, this is the point on the server side that the acceptAndOpen() method returns. If the connection is successfully opened, the OutputStream is obtained and a message is written to the stream. Note that because sockets are connection based, if there is no server listening for an incoming socket connection an exception will be thrown.

J2ME Home | All J2ME Tutorials | Latest J2ME Tutorials

Sponsored Links

If this tutorial doesn't answer your question, or you have a specific question, just ask an expert here. Post your question to get a direct answer.



Bookmark and Share

Comments(29)


1. View Comment

not satisfied friend. for Socket class it asks to import java.net in J2ME

View Tutorial          By: Gaurav at 2009-01-28 07:34:42
2. View Comment

Hi Gaurav, The sample in this tutorial is just a code snippet (NOT THE COMPLETE MIDLET). Therefore you should import the required packages when you add this snippet into your midlet.

View Tutorial          By: Ramlak at 2009-01-28 20:00:08
3. View Comment

How make comunication between client and server, sending mensage between them ??????

View Tutorial          By: alex at 2009-01-30 07:12:49
4. View Comment

pls give me code for exact communication between client and server

View Tutorial          By: SIRAJ at 2009-02-19 06:24:10
5. View Comment

Thanks friend this code will really help me
i will used it in my own client server program
thanks once again


View Tutorial          By: Anonymous at 2009-05-04 20:16:58
6. View Comment

plz can u give me code for key excange b/n pda & apache server.

View Tutorial          By: visnas at 2009-05-04 20:18:32
7. View Comment

i am developing a video streaming pc server to j2me client system that the j2me player can playing video from pc server using wifi
please any one tell me the study material for the above project if some code is availabe for video streaming then send to my email address
ziaullah126@gmail.com
thanks in advance
i am waiting for expert help


View Tutorial          By: ziathegreat at 2009-05-19 13:19:15
8. View Comment

pls can any one have any idea about storing the call, means :when the sender press the button call and start speak it must be recorded in the buffer of mobile and the receiver listen to the call from the memory .
how can i do it in j2me


View Tutorial          By: souhir at 2010-01-30 11:04:48
9. View Comment

Hay can you send me complete code to make connection between server and client please...?
I am developing an application to record the calls received to a cellphone.. i am trying to use socket programming for client an server connection so please do help..
thank you in advance..


View Tutorial          By: 9COOL at 2010-02-22 08:10:47
10. View Comment

Hey this code is very helpful......can you please give some idea ...how to use an outputstream data from client app to some inputstream at server app.
i mean i want to use this for some streaming project...so i can stream from client n want to see that stream to another app which containing server part.


View Tutorial          By: Preetam Purbia at 2010-03-01 04:25:47
11. View Comment

Please send the complete code.. thanks!

View Tutorial          By: Roger22 at 2010-03-11 00:41:07
12. View Comment

Hi!
I would like to send a string from a j2me application to a PC. If somebody can send me sample codes I would be very grateful.


View Tutorial          By: beetlebrain at 2010-03-26 06:02:00
13. View Comment

Hi I need code examples J2ME for chating aplication. thank's . .

View Tutorial          By: agus at 2010-04-03 04:16:11
14. View Comment

i am developing a video streaming PC server to j2me client system that the j2me player can playing video from PC server
please any one tell me the study material for the above project if some code is available for video streaming then send to my email address
tota_music2@yahoo.com


View Tutorial          By: lama at 2010-04-17 01:27:27
15. View Comment

Thank ... for idea But
i m confuse how run my application on my mobile ..
My application is I m retriving MySql database from my PC and show on mobile. My application Perfactly run on Localhost
but deploying on Mobile its not run.
which url passing Connector.open(url); statment.
Actualy I try to say I want acces my PC Mysql database throw my mobile. What I do ..Plz Help Me

Thanks


View Tutorial          By: Tanaji at 2010-06-01 23:13:19
16. View Comment

This is starting program for me in j2me.This will be very useful for me in my project thank you..

View Tutorial          By: Surya at 2010-07-26 03:29:47
17. View Comment

A precise one. This is how I would like to see examples. Yours is straight to the point.

Thanks


View Tutorial          By: Guna at 2010-10-14 03:24:34
18. View Comment

Hi , instead of using localhost. I am using a mobile phone as a client and want to communicate to my computer using its IPaddress. I tried it but it does not work although it works fine with localhost. It returns me connection not found .. If you could elaborate on this or put a sample code..


Thanks in adv


View Tutorial          By: vimal at 2010-12-02 01:44:40
19. View Comment

Hi , instead of using localhost. I am using a mobile phone as a client and want to communicate to my computer using its IPaddress. I tried it but it does not work although it works fine with localhost. It returns me connection not found .. If you could elaborate on this or put a sample code..

View Tutorial          By: ashish at 2011-02-28 05:05:49
20. View Comment

this code is very usefull but unfortunately, i have this message errror, could you help me please:
Warning: To avoid potential deadlock, operations that may block, such as
networking, should be performed in a different thread than the
commandAction() handler.


View Tutorial          By: imenish at 2011-03-24 15:32:43
21. View Comment

thanx allot its a very good sample , but im trying to test it on 2 different devices .. i cant connect to a wlan and open a socket ..
is there any one here tried this thing ??
if u have any idea about this plz feel free to contact me
eng_waleedqaffaf@hotmail.com


View Tutorial          By: Waleed Qaffaf at 2011-06-09 09:37:15
22. View Comment

hi any one can send me the code for HTTPclient program..
i want to connected to the internet and get the HTML code form that file like www.google.com


View Tutorial          By: indela at 2011-06-13 08:41:12
23. View Comment

Thanks man it is very very helpfull for me.
Thanks alot


View Tutorial          By: qasim azam at 2011-06-15 18:09:35
24. View Comment

Hi, Please let me know how to implement this program successfully, do i need to create two separate java files and need to execute the program through two separate windows of same application. Please let me know!

View Tutorial          By: Mukul Chadha at 2011-06-29 09:13:28
25. View Comment

Hi,
The code runs fine on my emulator even when I use an IP address instead of the Localhost. The IP address is globally open and can be accessed from outsider networks. However, trying to run the application on the mobile phone (Nokia N86) which has a 3G internet connection, it fails with the following error message:

SymbinanOS error = 4161 : Packet data: Packet data connection not available.

any idea how to fix this?

/R


View Tutorial          By: Ramin at 2011-07-07 07:23:45
26. View Comment

i am developing a video streaming PC server to j2me client system that the j2me player can playing video from PC server .if have any code for video streaming then send to my email address as soon as possible jamsiya.np@dieutek.com

View Tutorial          By: Jamsiya at 2011-08-11 05:07:01
27. View Comment

Hii,,,i have a java server socket program and i want to make a request to my server by using gprs in my mobile is it possible to ping the java server program by using my mobile plz help me how to do dis one.......

View Tutorial          By: prawinmasthan at 2012-01-13 08:38:35
28. View Comment

Hi I am developing a code for data transfer from client to sever using wifi LAN network ,i was succeed the socket connection and data transfer by using your code, but we have bulk data , it take more than 3 min to transfer, kindly guide me how to improve the data transfer speed? Note: our client module doesn't support ftp,http protocol
os = sc.openOutputStream();
byte[] data = "Hello from a socket!".getBytes();
os.write(data);


View Tutorial          By: Rajavel at 2014-03-21 14:17:54
29. View Comment

javax.microedition.io.ConnectionNotFoundException: TCP open
at com.sun.midp.io.j2me.socket.Protocol.connect(+99)
at com.sun.midp.io.ConnectionBaseAdapter.openPrim(+52)
at com.sun.midp.io.j2me.socket.Protocol.openPrim(+108)
at javax.microedition.io.Connector.openPrim(+299)
at javax.microedition.io.Connector.open(+15)
at javax.microedition.io.Connector.open(+6)
at javax.microedition.io.Connector.open(+5)
at Sensor1.startApp(+6)
at javax.microedition.midlet.MIDletProxy.startApp(+7)
at com.sun.midp.midlet.Scheduler.schedule(+270)
at com.sun.midp.main.Main.runLocalClass(+28)
at com.sun.midp.main.Main.main(+80)


View Tutorial          By: yellaiah at 2014-12-27 05:18:52

Your name (required):


Your email(required, will not be shown to the public):


Your sites URL (optional):


Your comments:



More Tutorials by David Hemphill
Using HTTP vs UDP vs Socket in J2ME
Using HttpConnection in J2ME (Retrieve web content from a website to a phone)
Client Server in J2ME (Socket Programming sample)
Datagrams in J2ME (UDP Programming sample)

More Tutorials in J2ME
Code sample to Send SMS from a J2ME application.
Adding your own Application icon for your J2ME application (jar file)
Play a multimedia file in J2ME Program (Audio/Video) using MMAPI
Datagrams in J2ME (UDP Programming sample)
Client Server in J2ME (Socket Programming sample)
Using HttpConnection in J2ME (Retrieve web content from a website to a phone)
Using HTTP vs UDP vs Socket in J2ME
RMSCookieConnector - Using Cookies in J2ME
POST UTF-8 encoded data to the server in J2ME
lists, forms, choices, gauges, text fields, text boxes in J2ME
Using List to create a Menu and Menu items in J2ME
Using alerts and tickers in J2ME
J2ME Canvas sample to show games programming in J2ME
Timer and TimerTask example in J2ME
List of GPRS Access points for all countries

More Latest News
Most Viewed Articles (in J2ME )
What is J2ME?
Code sample to Send SMS from a J2ME application.
Client Server in J2ME (Socket Programming sample)
Download a file over a network in J2ME midlet
List of GPRS Access points for all countries
Y.S. Sun Green Building Research Center
'LINK.EXE' is not recognized as an internal or ext
Sample Java program shows how to Read a file over a network using J2ME midlet
Sample J2ME code that shows various functionality of RMS.
java.lang.SecurityException: MIDP lifecycle does not support system exit.
Gauge sample program in J2ME
Sample program to draw a arc in J2ME
'double buffering' Sample program in J2ME
RMS Basics in J2ME
The MIDP Networking Model in J2ME
Most Emailed Articles (in J2ME)
Your first J2ME program and a midlet lifecycle explained.
Sample program to draw a arc in J2ME
Types of Profiles in J2ME
Using HttpConnection in J2ME (Retrieve web content from a website to a phone)
Play a multimedia file in J2ME Program (Audio/Video) using MMAPI
What is J2ME?
Download a file over a network in J2ME midlet
How to load J2ME applications to the IDEN handsets
Y.S. Sun Green Building Research Center
'LINK.EXE' is not recognized as an internal or ext
Sample Java program shows how to Read a file over a network using J2ME midlet
Sample J2ME code that shows various functionality of RMS.
A sample J2ME midlet that shows an example of using a Timer and a TimerTask.
GUI components and menu based J2ME Applications.
java.lang.SecurityException: MIDP lifecycle does not support system exit.