Client Server in J2ME (Socket Programming sample)

By: David Hemphill Viewed: 161 times  Printer Friendly Format    


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.

Most Viewed Articles (in J2ME )

Latest Articles (in J2ME)

Comment on this tutorial

Subscribe to Tutorials

Related Tutorials

Archived Comments

1. not satisfied friend. for Socket class it asks to
View Tutorial          By: Gaurav at 2009-01-28 07:34:42

2. Hi Gaurav, The sample in this tutorial is just a c
View Tutorial          By: Ramlak at 2009-01-28 20:00:08

3. How make comunication between client and server, s
View Tutorial          By: alex at 2009-01-30 07:12:49

4. pls give me code for exact communication between
View Tutorial          By: SIRAJ at 2009-02-19 06:24:10

5. Thanks friend this code will really help me

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

6. plz can u give me code for key excange b/n pda &am
View Tutorial          By: visnas at 2009-05-04 20:18:32

7. i am developing a video streaming pc server to j2m
View Tutorial          By: ziathegreat at 2009-05-19 13:19:15

8. pls can any one have any idea about storing the ca
View Tutorial          By: souhir at 2010-01-30 11:04:48

9. Hay can you send me complete code to make connecti
View Tutorial          By: 9COOL at 2010-02-22 08:10:47

10. Hey this code is very helpful......can you please
View Tutorial          By: Preetam Purbia at 2010-03-01 04:25:47

11. Please send the complete code.. thanks!
View Tutorial          By: Roger22 at 2010-03-11 00:41:07

12. Hi!
I would like to send a string from a j2

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

13. Hi I need code examples J2ME for chating aplicatio
View Tutorial          By: agus at 2010-04-03 04:16:11

14. OMG lazy people.
View Tutorial          By: Luis at 2010-04-13 09:39:09

15. i am developing a video streaming PC server to j2m
View Tutorial          By: lama at 2010-04-17 01:27:27

16. Thank ... for idea But
i m confuse how run

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

17. This is starting program for me in j2me.This will
View Tutorial          By: Surya at 2010-07-26 03:29:47

18. A precise one. This is how I would like to see exa
View Tutorial          By: Guna at 2010-10-14 03:24:34

19. Hi , instead of using localhost. I am using a mobi
View Tutorial          By: vimal at 2010-12-02 01:44:40

20. Hi, i am new in j2me programming pls give me some
View Tutorial          By: Javed at 2011-02-01 08:47:50

21. Hi , instead of using localhost. I am using a mobi
View Tutorial          By: ashish at 2011-02-28 05:05:49

22. this code is very usefull but unfortunately, i hav
View Tutorial          By: imenish at 2011-03-24 15:32:43

23. thanx allot its a very good sample , but im trying
View Tutorial          By: Waleed Qaffaf at 2011-06-09 09:37:15

24. hi any one can send me the code for HTTPclient pro
View Tutorial          By: indela at 2011-06-13 08:41:12

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

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

26. Hi, Please let me know how to implement this progr
View Tutorial          By: Mukul Chadha at 2011-06-29 09:08:29

27. Hi, Please let me know how to implement this progr
View Tutorial          By: Mukul Chadha at 2011-06-29 09:13:28

28. Hi,
The code runs fine on my emulator even

View Tutorial          By: Ramin at 2011-07-07 07:23:45

29. i am developing a video streaming PC server to j2m
View Tutorial          By: Jamsiya at 2011-08-11 05:02:46

30. i am developing a video streaming PC server to j2m
View Tutorial          By: Jamsiya at 2011-08-11 05:07:01

31. hi , i want info about how find/reterive latitude,
View Tutorial          By: jafar at 2011-09-26 06:54:58

32. Hii,,,i have a java server socket program and i wa
View Tutorial          By: prawinmasthan at 2012-01-13 08:38:35

33. Can you all stop begging for code and start learni
View Tutorial          By: Vlad at 2012-02-24 12:49:45

34. Hi I am developing a code for data transfer from
View Tutorial          By: Rajavel at 2014-03-21 14:17:54

35. javax.microedition.io.ConnectionNotFoundException:
View Tutorial          By: yellaiah at 2014-12-27 05:18:52

36. Hey there would you mind letting me know which
View Tutorial          By: ________ _______ _ _______ ______ at 2017-04-24 22:19:32