張生工作室

          一切皆有可能

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            24 隨筆 :: 3 文章 :: 11 評(píng)論 :: 0 Trackbacks

          2008年11月28日 #

          import java.io.DataInputStream;
          import java.io.DataOutputStream;
          import java.io.IOException;
          import java.util.Vector;

          import javax.microedition.io.Connector;
          import javax.microedition.io.ServerSocketConnection;
          import javax.microedition.io.SocketConnection;
          import javax.microedition.midlet.MIDlet;
          import javax.microedition.midlet.MIDletStateChangeException;


          public class GroupServer extends MIDlet implements Runnable {
           
           private ServerSocketConnection ssc=null;
           private SocketConnection sc=null;
           private Vector v=new Vector();

           protected void startApp() throws MIDletStateChangeException {

              try {
             ssc=(ServerSocketConnection)Connector.open("socket://:9999");
              
             new Thread(this).start();
             
            } catch (IOException e) {
             
             e.printStackTrace();
            }
             

           }

           protected void destroyApp(boolean b) throws MIDletStateChangeException {


           }

           protected void pauseApp() {


           }

           public void run() {
            while(true)
            {
             
             try {
              sc=(SocketConnection)ssc.acceptAndOpen();
              ChatThread chat=new ChatThread(sc);
              v.addElement(chat);
              chat.start();
             } catch (IOException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
             }
            }
            
            
           }
           class ChatThread extends Thread
           {
            private SocketConnection sc=null;
            private DataOutputStream dos=null;
            private DataInputStream dis=null;
            public ChatThread(SocketConnection sc)
            {
             this.sc=sc;
             try
             {
                 dis=sc.openDataInputStream();
                 dos=sc.openDataOutputStream();
             }
             catch(Exception e)
             {
              
             }
             
            }
            public void run()
            {
             while(true)
             {
              try
              {
                 // dis=sc.openDataInputStream();
                 // dos=sc.openDataOutputStream();
                  String str=dis.readUTF();
                  for(int i=0;i<v.size();i++)
                  {
                   ChatThread chat= (ChatThread)v.elementAt(i);
                  //chat.dos.writeUTF(chat.dis.readUTF());
                   chat.dos.writeUTF(str);
                  // System.out.println(str+"\n");
                  
                  }
              }
              catch(Exception e)
              {
               
              }
             }
            }
           }

           

          }

          posted @ 2008-12-02 22:40 張生工作室 閱讀(313) | 評(píng)論 (0)編輯 收藏

          import java.io.DataInputStream;
          import java.io.DataOutputStream;
          import java.io.IOException;
          import javax.microedition.io.Connector;
          import javax.microedition.io.ServerSocketConnection;
          import javax.microedition.io.SocketConnection;
          import javax.microedition.lcdui.Command;
          import javax.microedition.lcdui.CommandListener;
          import javax.microedition.lcdui.Display;
          import javax.microedition.lcdui.Displayable;
          import javax.microedition.lcdui.Form;
          import javax.microedition.lcdui.StringItem;
          import javax.microedition.lcdui.TextField;
          import javax.microedition.midlet.MIDlet;
          import javax.microedition.midlet.MIDletStateChangeException;


          public class Client extends MIDlet  implements CommandListener {
           
           

           private DataInputStream dis=null;
           private DataOutputStream dos=null;
           private ServerSocketConnection ssc=null;
           //private StreamConnection sc=null;
           private SocketConnection sc=null;
           private TextField msg=null;
           private Form frm=null;
           private Command cmdSend=null;
           private StringItem imsg=null;
           
           protected void startApp() throws MIDletStateChangeException {
            
            frm=new Form("客戶(hù)端");
            cmdSend=new Command("發(fā)送",Command.OK,1);
            msg=new TextField("請(qǐng)輸入你的信息","",255,TextField.ANY);
            frm.append(msg);
            frm.addCommand(cmdSend);
            frm.setCommandListener(this);
            Display.getDisplay(this).setCurrent(frm);
            
            
            try {
             sc=(SocketConnection)Connector.open("socket://127.0.0.1:9999");
             //sc=ssc.acceptAndOpen();
             dis=sc.openDataInputStream();
             dos=sc.openDataOutputStream();
             Chat chat=new Chat();
             chat.start();
             
            } catch (IOException e) {
            
             e.printStackTrace();
            }
            

           }
           

           public void commandAction(Command c, Displayable d) {
            if(c==cmdSend)
            {
             try {
              dos.writeUTF(msg.getString()+"\n");
             } catch (IOException e) {
              // TODO Auto-generated catch block
              System.out.println(e.getMessage()+"\n");
             }
             msg.setString("");
            }
            
            
           }

           protected void destroyApp(boolean b) throws MIDletStateChangeException {
            

           }

           protected void pauseApp() {
           

           }
           
           class Chat extends Thread
           {
            public void run()
            {
             while(true)
             {
              
               try {
                imsg=new StringItem(dis.readUTF(),"");
                frm.insert(1, imsg);
              
             } catch (IOException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
             }
             }
             
             
            }
           }

           
           

           

          }

          posted @ 2008-12-01 20:28 張生工作室 閱讀(251) | 評(píng)論 (0)編輯 收藏

          import java.io.DataInputStream;
          import java.io.DataOutputStream;
          import java.io.IOException;
          import javax.microedition.io.Connector;
          import javax.microedition.io.ServerSocketConnection;
          import javax.microedition.io.SocketConnection;
          import javax.microedition.io.StreamConnection;
          import javax.microedition.lcdui.Command;
          import javax.microedition.lcdui.CommandListener;
          import javax.microedition.lcdui.Display;
          import javax.microedition.lcdui.Displayable;
          import javax.microedition.lcdui.Form;
          import javax.microedition.lcdui.StringItem;
          import javax.microedition.lcdui.TextField;
          import javax.microedition.midlet.MIDlet;
          import javax.microedition.midlet.MIDletStateChangeException;


          public class Server extends MIDlet  implements CommandListener {
           
           

           private DataInputStream dis=null;
           private DataOutputStream dos=null;
           private ServerSocketConnection ssc=null;
           //private StreamConnection sc=null;
           private SocketConnection sc=null;
           private TextField msg=null;
           private Form frm=null;
           private Command cmdSend=null;
           private StringItem imsg=null;
           
           protected void startApp() throws MIDletStateChangeException {
            
            frm=new Form("服務(wù)器");
            cmdSend=new Command("發(fā)送",Command.OK,1);
            msg=new TextField("請(qǐng)輸入你的信息","",255,TextField.ANY);
            frm.append(msg);
            frm.addCommand(cmdSend);
            frm.setCommandListener(this);
            Display.getDisplay(this).setCurrent(frm);
            
            
            try {
             ssc=(ServerSocketConnection)Connector.open("socket://:9999");
             sc=(SocketConnection)ssc.acceptAndOpen();
             dis=sc.openDataInputStream();
             dos=sc.openDataOutputStream();
             Chat chat=new Chat();
             chat.start();
             
            } catch (IOException e) {
            
             e.printStackTrace();
            }
            

           }
           

           public void commandAction(Command c, Displayable d) {
            if(c==cmdSend)
            {
             try {
              dos.writeUTF(msg.getString()+"\n");
             } catch (IOException e) {
              // TODO Auto-generated catch block
              System.out.println(e.getMessage()+"\n");
             }
             msg.setString("");
            }
            
            
           }

           protected void destroyApp(boolean b) throws MIDletStateChangeException {
            

           }

           protected void pauseApp() {
           

           }
           
           class Chat extends Thread
           {
            public void run()
            {
             while(true)
             {
              
               try {
                imsg=new StringItem( dis.readUTF(),"");
                frm.insert(1, imsg);
             } catch (IOException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
             }
             }
             
             
            }
           }

           
           

           

          }

          posted @ 2008-12-01 20:28 張生工作室 閱讀(365) | 評(píng)論 (0)編輯 收藏

          import javax.microedition.lcdui.Command;
          import javax.microedition.lcdui.CommandListener;
          import javax.microedition.lcdui.Display;
          import javax.microedition.lcdui.Displayable;
          import javax.microedition.lcdui.Form;
          import javax.microedition.lcdui.Item;
          import javax.microedition.lcdui.ItemStateListener;
          import javax.microedition.lcdui.TextField;
          import javax.microedition.midlet.MIDlet;
          import javax.microedition.midlet.MIDletStateChangeException;


          public class MessageMIDlet extends MIDlet {

           
           private welcome wcfrm=null;
           
           public MessageMIDlet() {

           }

           protected void destroyApp(boolean arg0) throws MIDletStateChangeException {


           }

           protected void pauseApp() {
           

           }

           protected void startApp() throws MIDletStateChangeException {
           
            wcfrm=new welcome(this);
            Display.getDisplay(this).setCurrent(wcfrm);
           }

          }

          class welcome extends Form implements CommandListener
          {

           
              private Command cmdExit=null;
              private Command cmdWrite=null;
              private writemsg wrfrm=null;
              private MIDlet let=null;
             
              public welcome(MIDlet mlet)
              {
               super("歡迎使用本程序");
               let=mlet;
           
               cmdExit=new Command("退出",Command.EXIT,1);
               cmdWrite=new Command("寫(xiě)短信",Command.SCREEN,1);
               this.addCommand(cmdExit);
               this.addCommand(cmdWrite);
               this.setCommandListener(this);
               
              }
           public void commandAction(Command c, Displayable d) {
           
             if(c==cmdExit)
             {
            
              let.notifyDestroyed();
             }
             else
              if(c==cmdWrite)
              {
               wrfrm=new writemsg(let);
               Display.getDisplay(let).setCurrent(wrfrm);
             
              
              }
           
           }

          }
          class writemsg extends javax.microedition.lcdui.Form implements CommandListener,ItemStateListener
          {
           

           private Command cmdBack=null;
           private Command cmdwrNum=null;
           private MIDlet let=null;
           private TextField tf=null;
           private Command cmdDel=null;
           private writeNum2 wrnum=null;
           
           

           public writemsg(MIDlet mlet)
           {
           
            super("請(qǐng)輸入短信內(nèi)容");
            let=mlet;
            cmdBack=new Command("返回",Command.EXIT,1);
            cmdwrNum=new Command("發(fā)送",Command.SCREEN,1);
            cmdDel=new Command("刪除",Command.EXIT,1);
            this.addCommand(cmdBack);
            this.addCommand(cmdwrNum);
           
            tf= new  TextField("","",255,TextField.ANY);
            //tf.addCommand(cmdDel);
            this.append(tf);
            this.setItemStateListener(this);
            this.setCommandListener(this);
            tf.setLayout(TextField.LAYOUT_VEXPAND);
           }
           
           public void commandAction(Command c, Displayable d) {
           
            if(c==cmdBack)
            {
             Display.getDisplay(let).setCurrent(new welcome(let));
            
            }else if(c==cmdwrNum)
            {
            wrnum=new  writeNum2(let);
             Display.getDisplay(let).setCurrent(wrnum);
            
            }else if(c==cmdDel)
            {
             int p=tf.getCaretPosition();
             if(p>0)
             {
              tf.delete(p-1, 1);
             }
             if(tf.getString().length()==0)
             {
                this.removeCommand(cmdDel);
                this.addCommand(cmdBack);
             
             }
            
            }

           
           }

           public void itemStateChanged(Item i) {
           
            if(i==tf)
            {
              if( tf.getString().length()>0)
              {
              // this.addCommand(cmdDel);
               this.removeCommand(cmdBack);
               this.addCommand(cmdDel);
              }
              else
              {
               this.removeCommand(cmdDel);
               this.addCommand(cmdBack);
              }
            
            
            }
           
           
           }
           
           
          }

           

          class writeNum2 extends javax.microedition.lcdui.Form implements CommandListener,ItemStateListener
          {
           

           private Command cmdBack=null;
           private Command cmdwrNum=null;
           private MIDlet let=null;
           private TextField tf=null;
           private Command cmdDel=null;
           private Form preFrm=null;
           private boolean sendflag=false;

           
           

           public writeNum2(MIDlet mlet)
           {
           
            super("請(qǐng)輸入對(duì)方號(hào)碼");
            let=mlet;
            preFrm=(Form) Display.getDisplay(let).getCurrent();
            cmdBack=new Command("返回",Command.EXIT,1);
            cmdwrNum=new Command("發(fā)送",Command.SCREEN,1);
            cmdDel=new Command("刪除",Command.EXIT,1);
            this.addCommand(cmdBack);
            this.addCommand(cmdwrNum);
           
            tf= new  TextField("","",13,TextField.NUMERIC);
            //tf.addCommand(cmdDel);
            this.append(tf);
            this.setItemStateListener(this);
            this.setCommandListener(this);
           
           }
           
           public void commandAction(Command c, Displayable d) {
           
            if(c==cmdBack)
            {
            if (sendflag)
            Display.getDisplay(let).setCurrent(new welcome(let));
            else
             Display.getDisplay(let).setCurrent(this.preFrm);
            
            }else if(c==cmdwrNum)
            {

              String msg= ((TextField)(preFrm.get(0))).getString();
              String phonenum= tf.getString();
             
              this.append("信息內(nèi)容:"+ msg);
              this.append("發(fā)送號(hào)碼:"+ phonenum);
              this.append("發(fā)送狀態(tài):成功");
              this.delete(0);
              this.removeCommand(cmdwrNum);
              this.removeCommand(cmdDel);
              this.addCommand(cmdBack);
              sendflag=true;
            }else if(c==cmdDel)
            {
             int p=tf.getCaretPosition();
             if(p>0)
             {
              tf.delete(p-1, 1);
             }
             if(tf.getString().length()==0)
             {
                this.removeCommand(cmdDel);
                this.addCommand(cmdBack);
             
             }
            
            }

           
           }


           public void itemStateChanged(Item i) {
           
            if(i==tf)
            {
              if( tf.getString().length()>0)
              {
              // this.addCommand(cmdDel);
               this.removeCommand(cmdBack);
               this.addCommand(cmdDel);
              }
              else
              {
               this.removeCommand(cmdDel);
               this.addCommand(cmdBack);
              }
            
            
            }
           
           
           }
           
           
          }

          /*

          class writeNum extends Form implements CommandListener
          {

           private MIDlet let=null;
           private Command cmdSend=null;
           private Command cmdBack=null;
           private TextField num=null;
           private Form backfrm=null;
           public writeNum(MIDlet mlet) {
           
            super("請(qǐng)輸入要發(fā)送的號(hào)碼");
            let=mlet;
            num=new TextField("","",13,TextField.NUMERIC);
            this.append(num);
            cmdSend=new Command("發(fā)送",Command.OK,1);
            cmdBack=new Command("返回",Command.BACK,1);
            this.addCommand(cmdSend);
            this.addCommand(cmdBack);
            this.backfrm=(Form) Display.getDisplay(let).getCurrent();
            this.setCommandListener(this);
           
           
           }

           public void commandAction(Command c, Displayable d) {
            if(c==cmdSend)
            {
             try
             {
              String msg=((TextField)this.backfrm.get(0)).getString();//當(dāng)跨幾個(gè)Form時(shí)應(yīng)該怎么辦?
              this.append("信息:"+ msg+"已發(fā)送到:"+ num.getString());
            
             this.delete(0);
             this.setTitle("信息已發(fā)送成功");
             }
             catch(Exception e)
             {
              this.append("信息成功發(fā)送");
             }
            }
            else if(c==cmdBack)
            {
             Display.getDisplay(let).setCurrent(this.backfrm);
            }
           
           
           }
           
          }
          **/

           

          posted @ 2008-11-28 13:06 張生工作室 閱讀(386) | 評(píng)論 (1)編輯 收藏

          import javax.microedition.lcdui.Command;
          import javax.microedition.lcdui.CommandListener;
          import javax.microedition.lcdui.Display;
          import javax.microedition.lcdui.Displayable;
          import javax.microedition.lcdui.Form;
          import javax.microedition.lcdui.Item;
          import javax.microedition.lcdui.ItemStateListener;
          import javax.microedition.lcdui.TextField;
          import javax.microedition.midlet.MIDlet;
          import javax.microedition.midlet.MIDletStateChangeException;


          public class MessageMIDlet extends MIDlet {

           
           private welcome wcfrm=null;
           
           public MessageMIDlet() {

           }

           protected void destroyApp(boolean arg0) throws MIDletStateChangeException {


           }

           protected void pauseApp() {
           

           }

           protected void startApp() throws MIDletStateChangeException {
           
            wcfrm=new welcome(this);
            Display.getDisplay(this).setCurrent(wcfrm);
           }

          }

          class welcome extends Form implements CommandListener
          {

           
              private Command cmdExit=null;
              private Command cmdWrite=null;
              private writemsg wrfrm=null;
              private MIDlet let=null;
             
              public welcome(MIDlet mlet)
              {
               super("歡迎使用本程序");
               let=mlet;
           
               cmdExit=new Command("退出",Command.EXIT,1);
               cmdWrite=new Command("寫(xiě)短信",Command.SCREEN,1);
               this.addCommand(cmdExit);
               this.addCommand(cmdWrite);
               this.setCommandListener(this);
               
              }
           public void commandAction(Command c, Displayable d) {
           
             if(c==cmdExit)
             {
            
              let.notifyDestroyed();
             }
             else
              if(c==cmdWrite)
              {
               wrfrm=new writemsg(let);
               Display.getDisplay(let).setCurrent(wrfrm);
             
              
              }
           
           }

          }
          class writemsg extends javax.microedition.lcdui.Form implements CommandListener,ItemStateListener
          {
           

           private Command cmdBack=null;
           private Command cmdwrNum=null;
           private MIDlet let=null;
           private TextField tf=null;
           private Command cmdDel=null;
           private writeNum wrnum=null;
           
           

           public writemsg(MIDlet mlet)
           {
           
            super("請(qǐng)輸入短信內(nèi)容");
            let=mlet;
            cmdBack=new Command("返回",Command.EXIT,1);
            cmdwrNum=new Command("發(fā)送",Command.SCREEN,1);
            cmdDel=new Command("刪除",Command.EXIT,1);
            this.addCommand(cmdBack);
            this.addCommand(cmdwrNum);
           
            tf= new  TextField("","",255,TextField.ANY);
            //tf.addCommand(cmdDel);
            this.append(tf);
            this.setItemStateListener(this);
            this.setCommandListener(this);
           
           }
           
           public void commandAction(Command c, Displayable d) {
           
            if(c==cmdBack)
            {
             Display.getDisplay(let).setCurrent(new welcome(let));
            
            }else if(c==cmdwrNum)
            {
             wrnum=new writeNum(let);
             Display.getDisplay(let).setCurrent(wrnum);
            
            }else if(c==cmdDel)
            {
             int p=tf.getCaretPosition();
             if(p>0)
             {
              tf.delete(p-1, 1);
             }
             if(tf.getString().length()==0)
             {
                this.removeCommand(cmdDel);
                this.addCommand(cmdBack);
             
             }
            
            }

           
           }

           public void itemStateChanged(Item i) {
           
            if(i==tf)
            {
              if( tf.getString().length()>0)
              {
              // this.addCommand(cmdDel);
               this.removeCommand(cmdBack);
               this.addCommand(cmdDel);
              }
              else
              {
               this.removeCommand(cmdDel);
               this.addCommand(cmdBack);
              }
            
            
            }
           
           
           }
           
           
          }

          class writeNum extends Form implements CommandListener
          {

           private MIDlet let=null;
           private Command cmdSend=null;
           private Command cmdBack=null;
           private TextField num=null;
           private writemsg backfrm=null;
           public writeNum(MIDlet mlet) {
           
            super("請(qǐng)輸入要發(fā)送的號(hào)碼");
            let=mlet;
            num=new TextField("","",13,TextField.NUMERIC);
            this.append(num);
            cmdSend=new Command("發(fā)送",Command.OK,1);
            cmdBack=new Command("返回",Command.BACK,1);
            this.addCommand(cmdSend);
            this.addCommand(cmdBack);
            this.backfrm=(writemsg) Display.getDisplay(let).getCurrent();
            this.setCommandListener(this);
           
           
           }

           public void commandAction(Command c, Displayable d) {
            if(c==cmdSend)
            {
             try
             {
              String msg=((TextField)this.backfrm.get(0)).getString();//當(dāng)跨幾個(gè)Form時(shí)應(yīng)該怎么辦?
              this.append("信息:"+ msg+"已發(fā)送到:"+ num.getString());
            
             this.delete(0);
             this.setTitle("信息已發(fā)送成功");
             }
             catch(Exception e)
             {
              this.append("信息成功發(fā)送");
             }
            }
            else if(c==cmdBack)
            {
             Display.getDisplay(let).setCurrent(this.backfrm);
            }
           
           
           }
           
          }

           

          posted @ 2008-11-28 00:04 張生工作室 閱讀(213) | 評(píng)論 (0)編輯 收藏

          主站蜘蛛池模板: 石棉县| 大冶市| 镇康县| 东港市| 新民市| 密山市| 定州市| 巧家县| 阳原县| 安庆市| 古丈县| 东方市| 昂仁县| 肃南| 会宁县| 大同县| 木里| 织金县| 恩施市| 盐源县| 若尔盖县| 新邵县| 广昌县| 海淀区| 香格里拉县| 牡丹江市| 庄河市| 来宾市| 西盟| 中牟县| 天气| 尚志市| 开远市| 敖汉旗| 兴义市| 安岳县| 临夏市| 运城市| 科尔| 临江市| 辽阳县|