Page 3 of 5
ServerSocket MyService;
try {
MyServerice = new ServerSocket(PortNumber);
}
catch (IOException e) {
System.out.println(e);
}
When implementing a server you also need to create a socket object from the ServerSocket in order to listen for and accept connections from clients.
Socket clientSocket = null;
try {
serviceSocket = MyService.accept();
}
catch (IOException e) {
System.out.println(e);
}
How do I create an input stream?
On the client side, you can use the DataInputStream class to create an input stream to receive response from the server:
DataInputStream input;
try {
input = new DataInputStream(MyClient.getInputStream());
}
catch (IOException e) {
System.out.println(e);
}
The class DataInputStream allows you to read lines of text and Java primitive data types in a portable way. It has methods such as read, readChar, readInt, readDouble, and readLine,. Use whichever function you think suits your needs depending on the type of data that you receive from the server.
On the server side, you can use DataInputStream to receive input from the client:
DataInputStream input;
try {
input = new DataInputStream(serviceSocket.getInputStream());
}
catch (IOException e) {
System.out.println(e);
}
How do I create an output stream?
On the client side, you can create an output stream to send information to the server socket using the class PrintStream or DataOutputStream of java.io:
PrintStream output;
try {
output = new PrintStream(MyClient.getOutputStream());
}
catch (IOException e) {
System.out.println(e);
}
The class PrintStream has methods for displaying textual representation of Java primitive data types. Its Write and println
methods are important here. Also, you may want to use the DataOutputStream:
DataOutputStream output;
try {
output = new DataOutputStream(MyClient.getOutputStream());
}
catch (IOException e) {
System.out.println(e);
}
The class DataOutputStream allows you to write Java primitive data types; many of its methods write a single Java primitive type to the output stream.
The method writeBytes is a useful one.
On the server side, you can use the class PrintStream to send information to the client.
PrintStream output;
try {
output = new PrintStream(serviceSocket.getOutputStream());
}
catch (IOException e) {
System.out.println(e);
}
Note: You can use the class DataOutputStream as mentioned above.
How do I close sockets?
You should always close the output and input stream before you close the socket.
On the client side:
try {
output.close();
input.close();
MyClient.close();
}
catch (IOException e) {
System.out.println(e);
}
On the server side:
try {
output.close();
input.close();
serviceSocket.close();
MyService.close();
}
catch (IOException e) {
System.out.println(e);
}
In this section we will write two applications: a simple SMTP (simple mail transfer protocol) client, and a simple echo server.
1. SMTP client
Let's write an SMTP (simple mail transfer protocol) client -- one so simple that we have all the data encapsulated within the program. You may change the code around to suit your needs. An interesting modification would be to change it so that you accept the data from the command-line argument and also get the input (the body of the message) from standard input. Try to modify it so that it behaves the same as the mail program that comes with Unix.
socket prgBy Anonymous on November 9, 2009, 1:53 am want Data gram connecctions examples withj socket programming
Reply | Read entire comment
trrert By Anonymous on October 30, 2009, 7:17 amtrrert
Reply | Read entire comment
Hahaha, yeah, but it was pretty good at its time...By Debbiee on October 24, 2009, 1:16 pmHahaha, yeah, but it was pretty good at its time. However, some parts of the article should be updated coz some parts that have changed. Internet Marketing Blog...
Reply | Read entire comment
onoiaaseraerBy Klhkhlmklzse on October 7, 2009, 1:17 am???????? ??973???????????????????????? ???????????????????????????????????????????????????????????????? ?????????????????????????????????????????????????????????????1984?10???????????????????????????????????????????????????????????????1987??????????????????????????????????????????????????????????????????????????????????????????? 1988?8???????????????????????????????????????????...
Reply | Read entire comment
haiiBy haii on September 16, 2009, 8:26 amcan i ask question..? the problem is.. 1. write a program that will ask the user for the initials of the user's first name and last name and then output a...
Reply | Read entire comment
View all comments