I said read the source code of that server.try it.

Iany case,that was a suggestion, don't use that if you don't  want to.

Thanks for your response. I appreciate your feedback.

Thanks,
jd

On 7/4/10, pavan kumar <[email protected]> wrote:
> why u need smtp server..
>
> Program just writes text to port and server receives it and replies to it
>
> On Sun, Jul 4, 2010 at 2:01 AM, jitesh dundas <[email protected]> wrote:
>
>> Hey,
>>
>> Have you looked at the Apache james smtp server. Understand the source
>> code.
>>
>> I haven't looked at your complete code,but you might need a listener
>> for each email sent/received with threading support.
>>
>> Mostly,we do use web-based functionalities and I  encourage you to do
>> all. Please also do look at the apache web server code also for
>> further details.
>>
>> Try to first implement a client program properly and then server details.
>>
>> Regards,
>> Jitesh Dundas
>>
>> On 7/4/10, pavan kumar <[email protected]> wrote:
>> > Prateek,
>> >
>> > Issue is not with server code but client code.
>> >
>> > This is what i did:
>> >
>> > I moved lines from 16 to 19
>> >         ss = new Socket(InetAddress.getByName("Invictus-PC"),5100);
>> >             output = new ObjectOutputStream(ss.getOutputStream());
>> >             output.flush();
>> > to
>> >
>> > jButton1ActionPerformed method and closed ObjectOutputStream and Socket
>> > after processing the client request:
>> >
>> >  private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
>> >      try {
>> >      if( (jTextField1.getText().equalsIgnoreCase("")) ||
>> > (jTextField1.getText().equalsIgnoreCase("")) ||
>> > (jTextField1.getText().equalsIgnoreCase("")) )
>> >      {
>> >          JOptionPane.showMessageDialog(this,"Please fill out the details
>> > properly");
>> >      }
>> >      else{
>> >     *      Socket ss = new Socket("127.0.0.1",5100);
>> >             output = new ObjectOutputStream(ss.getOutputStream());
>> >             output.flush();
>> > *     String s = new String();
>> >      s =
>> >
>> jTextField1.getText()+","+jTextField2.getText()+","+jTextField3.getText();
>> >      output.writeObject(s);
>> >      jTextArea1.append("Message is being sent and the details are as
>> > under:\n");
>> >      jTextArea1.append("Message sent to server to be send to :
>> > "+jTextField1.getText()+"\n");
>> >      jTextArea1.append("Message subject is:
>> "+jTextField2.getText()+"\n");
>> >      jTextArea1.append("Actual Message is:
>> > "+jTextField3.getText()+"\n");
>> >      jTextArea1.append("WAITING FOR REPLY........\n \n \n \n ");
>> >      jTextArea1.setCaretPosition(jTextArea1.getText().length());
>> >      *output.close();
>> >      ss.close();*
>> >      }}
>> >       catch(Exception e){}
>> >
>> >     }
>> > I believe program has to close connection with server port once it
>> completes
>> > sending the request.
>> >
>> > May be someone has better explanation
>> >
>> > On Sat, Jul 3, 2010 at 9:51 PM, Prateek Rawal.......
>> > <[email protected]>wrote:
>> >
>> >> Hey everyone, i'm trying to develop a email program with client and
>> >> server.
>> >> The client will send the message containing the details:
>> >> 1. To whom it should be send
>> >> 2. Subject
>> >> 3. Message Part
>> >>
>> >> This message will go to server which in turn will redirect it to the
>> >> expected destination(the one contained in the "To" part of the message)
>> >>
>> >> I have written the code for both client and server which are as
>> >> follows:
>> >>
>> >> CLIENT code(I have written it in NetBeans):
>> >>
>> >>
>> >>    1. import java.io.*;
>> >>    2. import java.net.*;
>> >>    3. import javax.swing.JOptionPane;
>> >>    4.
>> >>    5. public class Client extends javax.swing.JFrame implements
>> >>     Runnable {
>> >>    6.
>> >>    7.     /** Creates new form Client */
>> >>    8.     public Client() {
>> >>    9.         initComponents();
>> >>    10.     }
>> >>    11.     public void run(){
>> >>    12.         ServerSocket ssoc;
>> >>    13.         Socket ss,sen;
>> >>    14.         try {
>> >>    15.
>> >>    16.             ss = new
>> >> Socket(InetAddress.getByName("Invictus-PC"),
>> >>    5100);
>> >>    17.             output = new
>> >>     ObjectOutputStream(ss.getOutputStream());
>> >>    18.             output.flush();
>> >>    19.             ssoc = new ServerSocket(5000);
>> >>    20.
>> >>    21.             while(true){
>> >>    22.
>> >>       1. sen = ssoc.accept();
>> >>       2. input = new ObjectInputStream(sen.getInputStream());
>> >>
>> >>    23.             String s = (String) input.readObject();
>> >>    24.             int i = s.indexOf(",",0);
>> >>    25.             int j = s.indexOf(",",i+1);
>> >>    26.             int k = s.indexOf(",",j+1);
>> >>    27.             String s1 = s.substring(0,i);
>> >>    28.             String s2 = s.substring(i+1,j);
>> >>    29.             String s3 = s.substring(j+1);
>> >>    30.             jTextArea2.append(
>> >>    "New Message Recieved and the Details are as under:\n");
>> >>    31.             jTextArea2.append("Message sent by: "+s1+"\n");
>> >>    32.             jTextArea2.append("Message subject is: "+s2+"\n");
>> >>    33.             jTextArea2.append("Actual message is: "+s3+
>> >>    "\n \n \n \n");
>> >>    34.
>> >>
>>  jTextArea2.setCaretPosition(jTextArea2.getText().length());
>> >>    35.
>> >>    36.             sen.close();
>> >>    37.             input.close();
>> >>    38.             }
>> >>    39.         }
>> >>    40.         catch(Exception e){
>> >>    41.         e.printStackTrace();
>> >>    42.         }
>> >>    43.
>> >>    44.     }
>> >>    45.
>> >>    46.
>> >>    47.     @SuppressWarnings("unchecked")
>> >>    48.
>> >>    // <editor-fold defaultstate="collapsed" desc="Generated Code">
>> >>
>> >>    49.     private void initComponents() {
>> >>    50.
>> >>    51.         jTextField1 = new javax.swing.JTextField();
>> >>    52.         jTextField2 = new javax.swing.JTextField();
>> >>    53.         jTextField3 = new javax.swing.JTextField();
>> >>    54.         jButton1 = new javax.swing.JButton();
>> >>    55.         jButton2 = new javax.swing.JButton();
>> >>    56.         jLabel1 = new javax.swing.JLabel();
>> >>    57.         jLabel2 = new javax.swing.JLabel();
>> >>    58.         jLabel3 = new javax.swing.JLabel();
>> >>    59.         jScrollPane1 = new javax.swing.JScrollPane();
>> >>    60.         jTextArea1 = new javax.swing.JTextArea();
>> >>    61.         jScrollPane2 = new javax.swing.JScrollPane();
>> >>    62.         jTextArea2 = new javax.swing.JTextArea();
>> >>    63.         jLabel4 = new javax.swing.JLabel();
>> >>    64.         jLabel5 = new javax.swing.JLabel();
>> >>    65.
>> >>    66.
>> >>
>> >> setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
>> >>    67.         getContentPane().setLayout(null);
>> >>    68.         getContentPane().add(jTextField1);
>> >>    69.         jTextField1.setBounds(60, 30, 260, 50);
>> >>    70.         getContentPane().add(jTextField2);
>> >>    71.         jTextField2.setBounds(60, 100, 260, 40);
>> >>    72.         getContentPane().add(jTextField3);
>> >>    73.         jTextField3.setBounds(60, 160, 260, 140);
>> >>    74.
>> >>    75.         jButton1.setText("Send");
>> >>    76.         jButton1.addActionListener(new
>> >>     java.awt.event.ActionListener() {
>> >>    77.             public void
>> >>     actionPerformed(java.awt.event.ActionEvent evt) {
>> >>    78.                 jButton1ActionPerformed(evt);
>> >>    79.             }
>> >>    80.         });
>> >>    81.         getContentPane().add(jButton1);
>> >>    82.         jButton1.setBounds(60, 340, 100, 30);
>> >>    83.
>> >>    84.         jButton2.setText("Reset");
>> >>    85.         jButton2.addActionListener(new
>> >>     java.awt.event.ActionListener() {
>> >>    86.             public void
>> >>     actionPerformed(java.awt.event.ActionEvent evt) {
>> >>    87.                 jButton2ActionPerformed(evt);
>> >>    88.             }
>> >>    89.         });
>> >>    90.         getContentPane().add(jButton2);
>> >>    91.         jButton2.setBounds(220, 340, 100, 30);
>> >>    92.
>> >>    93.         jLabel1.setText("To:");
>> >>    94.         getContentPane().add(jLabel1);
>> >>    95.         jLabel1.setBounds(20, 20, 40, 50);
>> >>    96.
>> >>    97.         jLabel2.setText("Subject:");
>> >>    98.         getContentPane().add(jLabel2);
>> >>    99.         jLabel2.setBounds(10, 100, 50, 40);
>> >>    100.
>> >>    101.         jLabel3.setText("Message:");
>> >>    102.         getContentPane().add(jLabel3);
>> >>    103.         jLabel3.setBounds(10, 150, 46, 40);
>> >>    104.
>> >>    105.         jTextArea1.setColumns(20);
>> >>    106.         jTextArea1.setRows(5);
>> >>    107.         jScrollPane1.setViewportView(jTextArea1);
>> >>    108.
>> >>    109.         getContentPane().add(jScrollPane1);
>> >>    110.         jScrollPane1.setBounds(500, 30, 380, 150);
>> >>    111.
>> >>    112.         jTextArea2.setColumns(20);
>> >>    113.         jTextArea2.setRows(5);
>> >>    114.         jScrollPane2.setViewportView(jTextArea2);
>> >>    115.
>> >>    116.         getContentPane().add(jScrollPane2);
>> >>    117.         jScrollPane2.setBounds(500, 230, 380, 170);
>> >>    118.
>> >>    119.         jLabel4.setText("Sending Message Details:");
>> >>    120.         getContentPane().add(jLabel4);
>> >>    121.         jLabel4.setBounds(360, 30, 130, 150);
>> >>    122.
>> >>    123.         jLabel5.setText("Recieving Message Details:");
>> >>    124.         getContentPane().add(jLabel5);
>> >>    125.         jLabel5.setBounds(360, 230, 130, 170);
>> >>    126.
>> >>    127.         pack();
>> >>    128.     }// </editor-fold>
>> >>    129.
>> >>    130.     private void
>> >>     jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
>> >>    131.     jTextField1.setText("");
>> >>    132.     jTextField2.setText("");
>> >>    133.     jTextField3.setText("");
>> >>    134.     }
>> >>    135.
>> >>    136.     private void
>> >>     jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
>> >>    137.      try {
>> >>    138.
>> >>    139.      if( (jTextField1.getText().equalsIgnoreCase(""
>> >>    )) || (jTextField1.getText().equalsIgnoreCase(""
>> >>    )) || (jTextField1.getText().equalsIgnoreCase("")) )
>> >>    140.      {
>> >>    141.          JOptionPane.showMessageDialog(this,
>> >>    "Please fill out the details properly");
>> >>    142.      }
>> >>    143.      else{
>> >>    144.      String s = new String();
>> >>    145.      s = jTextField1.getText()+","+jTextField2.getText()+","
>> >>    +jTextField3.getText();
>> >>    146.      output.writeObject(s);
>> >>    147.      jTextArea1.append(
>> >>    "Message is being sent and the details are as under:\n");
>> >>    148.      jTextArea1.append("Message sent to server to be send to :
>> >> "
>> >>    +jTextField1.getText()+"\n");
>> >>    149.      jTextArea1.append("Message subject is: "
>> >>    +jTextField2.getText()+"\n");
>> >>    150.      jTextArea1.append("Actual Message is: "
>> >>    +jTextField3.getText()+"\n");
>> >>    151.      jTextArea1.append("WAITING FOR REPLY........\n \n \n \n
>> >> ");
>> >>    152.
>> >> jTextArea1.setCaretPosition(jTextArea1.getText().length());
>> >>    153.      }}
>> >>    154.       catch(Exception e){}
>> >>    155.
>> >>    156.
>> >>    157.     }
>> >>    158.
>> >>    159.
>> >>    160.     public static void main(String args[]) {
>> >>    161.         java.awt.EventQueue.invokeLater(new Runnable() {
>> >>    162.             public void run() {
>> >>    163.               Client u = new Client();
>> >>    164.               u.setVisible(true);
>> >>    165.               Thread t = new Thread(u);
>> >>    166.               t.start();
>> >>    167.             }
>> >>    168.         });
>> >>    169.     }
>> >>    170.     ObjectOutputStream output;
>> >>    171.     ObjectInputStream input;
>> >>    172.     // Variables declaration - do not modify
>> >>
>> >>    173.     private javax.swing.JButton jButton1;
>> >>    174.     private javax.swing.JButton jButton2;
>> >>    175.     private javax.swing.JLabel jLabel1;
>> >>    176.     private javax.swing.JLabel jLabel2;
>> >>    177.     private javax.swing.JLabel jLabel3;
>> >>    178.     private javax.swing.JLabel jLabel4;
>> >>    179.     private javax.swing.JLabel jLabel5;
>> >>    180.     private javax.swing.JScrollPane jScrollPane1;
>> >>    181.     private javax.swing.JScrollPane jScrollPane2;
>> >>    182.     private javax.swing.JTextArea jTextArea1;
>> >>    183.     private javax.swing.JTextArea jTextArea2;
>> >>    184.     private javax.swing.JTextField jTextField1;
>> >>    185.     private javax.swing.JTextField jTextField2;
>> >>    186.     private javax.swing.JTextField jTextField3;
>> >>    187.     // End of variables declaration
>> >>    188.
>> >>    189. }
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >> SERVER Code:
>> >>
>> >>
>> >>
>> >>    1. import java.net.*;
>> >>    2. import java.io.*;
>> >>    3. import java.io.ObjectInputStream;
>> >>    4. import java.io.ObjectOutputStream;
>> >>    5.
>> >>    6.
>> >>    7. public class Server extends javax.swing.JFrame implements
>> >>     Runnable {
>> >>    8.
>> >>    9.     /** Creates new form Server */
>> >>    10.     public Server() {
>> >>    11.         initComponents();
>> >>    12.     }
>> >>    13.     public void run(){
>> >>    14.         ServerSocket ss;
>> >>    15.         Socket s;
>> >>    16.         try {
>> >>    17.
>> >>    18.           ss = new ServerSocket(5100,10);
>> >>    19.             while(true){
>> >>    20.
>> >>    21.
>> >>    22.             s = ss.accept();
>> >>    23.
>> >>    24.
>> >>    25.             input = new ObjectInputStream(s.getInputStream());
>> >>    26.
>> >>    27.             String str = (String) input.readObject();
>> >>    28.             int i = str.indexOf(",",0);
>> >>    29.             int j = str.indexOf(",",i+1);
>> >>    30.             int k = str.indexOf(",",j+1);
>> >>    31.             String s1 = str.substring(0,i);
>> >>    32.             String s2 = str.substring(i+1,j);
>> >>    33.             String s3 = str.substring(j+1);
>> >>    34.             jTextArea1.append("Message Recieved\n");
>> >>    35.             jTextArea1.append("Details are as under:\n");
>> >>    36.             jTextArea1.append("Message sent by: "
>> >>    +s.getInetAddress()+"\n");
>> >>    37.             jTextArea1.append("Message sent to: "+s1+"\n");
>> >>    38.             jTextArea1.append("Message subject is: "+s2+"\n");
>> >>    39.             jTextArea1.append("Actual Message is :"+s3+"\n");
>> >>    40.             jTextArea1.append("Sending Message from: "
>> >>    +s.getInetAddress()+" to: "+s1+"\n");
>> >>    41.
>> >>
>>  jTextArea1.setCaretPosition(jTextArea1.getText().length());
>> >>    42.             Socket another = new
>> Socket(InetAddress.getByName(s1),
>> >>    5000);
>> >>    43.             ObjectOutputStream o1 = new
>> >>     ObjectOutputStream(another.getOutputStream());
>> >>    44.             String s4 = s.getInetAddress()+","+s2+","+s3;
>> >>    45.             o1.writeObject(s4);
>> >>    46.             jTextArea1.append("Message Send: "+s4+"\n");
>> >>    47.
>> >>    48.             s.close();
>> >>    49.             another.close();
>> >>    50.             input.close();
>> >>    51.             o1.close();
>> >>    52.             }
>> >>    53.         }
>> >>    54.         catch(Exception e){
>> >>    55. e.printStackTrace();
>> >>    56.         }
>> >>    57.     }
>> >>    58.
>> >>    59.     /** This method is called from within the constructor to
>> >>    60.      * initialize the form.
>> >>    61.
>> >>         * WARNING: Do NOT modify this code. The content of this method
>> is
>> >>    62.      * always regenerated by the Form Editor.
>> >>    63.      */
>> >>    64.     @SuppressWarnings("unchecked")
>> >>    65.
>> >>    // <editor-fold defaultstate="collapsed" desc="Generated Code">
>> >>
>> >>    66.     private void initComponents() {
>> >>    67.
>> >>    68.         jScrollPane1 = new javax.swing.JScrollPane();
>> >>    69.         jTextArea1 = new javax.swing.JTextArea();
>> >>    70.
>> >>    71.
>> >>
>> >> setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
>> >>    72.
>> >>    73.         jTextArea1.setColumns(20);
>> >>    74.         jTextArea1.setRows(5);
>> >>    75.         jScrollPane1.setViewportView(jTextArea1);
>> >>    76.
>> >>    77.
>> >>            getContentPane().add(jScrollPane1,
>> >> java.awt.BorderLayout.CENTER);
>> >>    78.
>> >>    79.         pack();
>> >>    80.     }// </editor-fold>
>> >>    81.
>> >>    82.     /**
>> >>    83.     * @param args the command line arguments
>> >>    84.     */
>> >>    85.     public static void main(String args[]) {
>> >>    86.         java.awt.EventQueue.invokeLater(new Runnable() {
>> >>    87.             public void run() {
>> >>    88.
>> >>    89.                 Server u = new Server();
>> >>    90.                 u.setVisible(true);
>> >>    91.                 Thread t = new Thread(u);
>> >>    92.                 t.start();
>> >>    93.             }
>> >>    94.         });
>> >>    95.     }
>> >>    96.     ObjectOutputStream output;
>> >>    97.     ObjectInputStream input;
>> >>    98.     // Variables declaration - do not modify
>> >>    99.     private javax.swing.JScrollPane jScrollPane1;
>> >>    100.     private javax.swing.JTextArea jTextArea1;
>> >>    101.     // End of variables declaration
>> >>    102.
>> >>    103. }
>> >>    104.
>> >>
>> >>
>> >>
>> >> I tried testing it on local machine,
>> >> i run server and then client,
>> >> after than i filled out the details in the client form, mentioning the
>> >> localhost in the to field,
>> >>
>> >> For the first time,Client sends succesfully, Server also recieves
>> >> Successfully and forwards it to the expected destination(in this case
>> the
>> >> localmachine) Successfully, and is recieved successfully at the
>> >> client(which
>> >> is reflected in the recieved message details textarea)
>> >>
>> >> But then when i do it for second time,Client sends succesfully, Server
>> >> DOESNOT recieve it, and hence do not forward it, and hence message not
>> >> received at the destination.
>> >>
>> >> THE PROBLEM is that the loop in the SERVER CODE runs only once(I don't
>> >> know
>> >> why is this so, im really frustated).
>> >> Please help me pointing out where am i going wrong.
>> >> Just run the code(after making the changes you told) and tell me why is
>> >> the
>> >> loop in the SERVER code runs only once(for the first time), I think
>> >> that
>> >> is
>> >> the CORE PROBLEM........
>> >> PLEASE HELP!
>> >>
>> >> --
>> >> To post to this group, send email to
>> >> [email protected]
>> >> To unsubscribe from this group, send email to
>> >> [email protected]<javaprogrammingwithpassion%[email protected]>
>> <javaprogrammingwithpassion%[email protected]<javaprogrammingwithpassion%[email protected]>
>> >
>> >> For more options, visit this group at
>> >> http://groups.google.com/group/javaprogrammingwithpassion?hl=en
>> >
>> >
>> >
>> >
>> > --
>> > Thanks,
>> > Pawan.
>> >
>> > While one person hesitates because he feels inferior, another is busy
>> making
>> > mistakes and becoming superior.
>> >
>> > Henry C. Link
>> >
>> > --
>> > To post to this group, send email to
>> > [email protected]
>> > To unsubscribe from this group, send email to
>> > [email protected]<javaprogrammingwithpassion%[email protected]>
>> > For more options, visit this group at
>> > http://groups.google.com/group/javaprogrammingwithpassion?hl=en
>>
>
>
>
> --
> Thanks,
> Pawan.
>
> While one person hesitates because he feels inferior, another is busy making
> mistakes and becoming superior.
>
> Henry C. Link
>

-- 
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/javaprogrammingwithpassion?hl=en

Reply via email to