張生工作室

          一切皆有可能

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

          2008年12月1日 #

          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("客戶端");
            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)編輯 收藏

          主站蜘蛛池模板: 广州市| 原阳县| 新河县| 江油市| 泰和县| 林芝县| 惠来县| 松桃| 金寨县| 彭泽县| 福海县| 乾安县| 甘南县| 出国| 日喀则市| 绥江县| 旬邑县| 桂平市| 莱州市| 长宁区| 玉龙| 修武县| 高平市| 马关县| 营口市| 宁陕县| 长春市| 望谟县| 法库县| 德保县| 马龙县| 山西省| 资兴市| 六枝特区| 和平区| 太仆寺旗| 通化市| 汤原县| 行唐县| 平利县| 合江县|