当前位置: 主页> 九维游戏>

Java on Windows CE,PocketPC Java网络标准计划

时间:2010-03-02 09:21 点击:

网络联机的经过介绍 笔者先为诸位介绍一下基本的Java网络法度模范联机的真理,如图10-4所述在Server端要先开启一个相连阜策划采纳Client的联机,当一收到Client真个联机的时候便能够将Server的场所及相连阜号(Socket)传给Client然后Client便取联机的讯息再将资料及Socket一路透过网络(Socket记载着IP Address及Port)将讯息送到Server端,就能够开始和作往来啰! 我们先撰写一个简略单纯的Server吧!! import java.io.*; import java.net.*; public class netServer { String clientMessage; ServerSocket sSocket; //发布运用ServerSocket的类别 Socket csocket; //博得Client联机封包的Socket,各为别想太多便是Client真个联机 public netServer() { try { sSocket = new ServerSocket(900,200); //开启Port 900,并控制Client联机的数目为200,若开启正常则开始期待Client真个联机 csocket = sSocket.accept(); //Client端已经联机上了博得Socket System.out.println("博得一个Client端从 "+csocket.getInetAddress().getHostAddress()); //体现出Client IP } catch(IOException ioe) { System.out.println("开启Server变态!!!"); } } public static void main(String[] args) { new netServer(); } } 执行 编译赢了后打java netServer画面如下图所示就会开始守候继承Client端的请求啰!!图netServer开始守候Client端发出请求 切换到DOS模式(再开一个DOS窗口)输入telnet 127.0.0.1 900(注重空格)画面会一闪就往时了。接着我们侦察Server的画面是否有呈现博得一个Client端从 127.0.0.1如下图图10-4所示。接着我们就开始撰写PocketPC中的Client吧!! 图netServer开始守候Client端发出请求 目前Server的法式皆在PC端执行喔!!待下个Client范例开始才移到PocketPC中执行。打造个Hello NetWork吧!! 皆下来我们撰写个输入您的姓名,Server会打对您打号召的法式吧!!这个法式的道理是在Server端执行一个无线回圈,然后供应服务如继承到Client传来的新闻之后就传回一个新闻Hello的新闻给Client,其余我们为了达到一次可能同时服务多个运用者所以我们运用了Thread的技艺。 //此为Server端法式 import java.io.*; import java.net.*; public class netHelloServer { String clientMessage; ServerSocket sSocket; //颁发运用ServerSocket的类型 Socket csocket; //博得Client联机封包的Socket,各为别想太多便是Client端的联机 public netHelloServer() { try { sSocket = new ServerSocket(900,200); //开启Port 900,并限制Client联机的数量为200,若开启正常则开始守候Client端的联机 while(true) { csocket=sSocket.accept(); Thread t=new MyThread(csocket); t.start(); } } catch(IOException ioe) { System.out.println("开启Server变态!!!"); } } public static void main(String[] args) { new netHelloServer(); } } class MyThread extends Thread { Socket conn; String tempStr; DataInputStream dis; DataOutputStream dos; //建构者 public MyThread(Socket inSocket) { conn = inSocket; } public void run() { try{ System.out.println("Server go connect from:"+conn.getInetAddress().getHostName()); dos = new DataOutputStream(conn.getOutputStream()); dos.writeUTF("输入您的姓名的材料"); //get the request conntent dis = new DataInputStream(conn.getInputStream()); tempStr = dis.readUTF(); //回响反映一下 dos.writeUTF("您输入的材料为"+tempStr+"系统正在为您筹办中请稍后..."); //杂乱的行为可以写在这里 dos.writeUTF(tempStr+" 您好..."); System.out.println("Server recivews data ="+tempStr); conn.close();//断线 } catch(IOException e) {System.out.println(e);} } } //Client端的圭臬 import java.awt.*; import java.awt.event.*; import java.net.*; import java.io.*; public class HelloClient extends Frame { Label lb1 = new Label("请输入姓名"); TextField tf1 = new TextField("",14); Label lb2 = new Label("请输入Server的IP"); TextField tf2 = new TextField("",14); TextArea ta1 = new TextArea(""); Button btn1 = new Button("送出信息"); Button btn2 = new Button("离开"); Panel pl1 = new Panel(); Panel pl2 = new Panel(); static Socket csocket = null; MouseClickevent bce = new MouseClickevent(); public HelloClient() { //窗口设定 btn1.addMouseListener (bce); btn2.addMouseListener (bce); pl1.setLayout(new GridLayout(2,1)); pl1.add(lb1); pl1.add(tf1); pl1.add(lb2); pl1.add(tf2); add(pl1,BorderLayout.NORTH); add(ta1,BorderLayout.CENTER); pl2.add(btn1); pl2.add(btn2); add(pl2,BorderLayout.SOUTH); setSize(240,320); setVisible(true); } public static void main(String[] args) { new HelloClient(); } //以下为按钮事宜处置 class MouseClickevent implements MouseListener { public void mouseClicked(MouseEvent e) {} public void mousePressed(MouseEvent e) { if(e.getSource() == btn1) { if(!tf2.getText().equals("")&&!tf1.getText().equals("")) try{ //csocket = new Socket("127.0.0.1",900); csocket = new Socket(tf2.getText(),900); DataInputStream dis = new DataInputStream(csocket.getInputStream()); String data = dis.readUTF(); //System.out.println("\nClient get datafrom server = "+data); ta1.append("\n送一个音信到Server: "+data); //write response to server DataOutputStream dos = new DataOutputStream(csocket.getOutputStream()); //dos.writeUTF("Bye! all done"); dos.writeUTF(tf1.getText()); data = ""; data = dis.readUTF(); //System.out.println("Client get datafrom server = "+data); ta1.append("\n收到Server的音信: "+data); data = dis.readUTF(); //System.out.println("Client get datafrom server = "+data); ta1.append("\n收到Server的音信: "+data); csocket.close(); }catch(IOException IOe) { System.out.println(e); } } else if(e.getSource() == btn2) { //System.out.println("Btn2 is Clicked"); System.exit(1); } } public void mouseReleased(MouseEvent e) {} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} } } 编译及激活标准 Server端 履行办法在PC端编译及履行 javac –classpath %pjeeclasspath%;. netHelloServer.java(编译) java –classpath %pjeeclasspath%;. netHelloServer(履行)图 netServer早先守候Client端发出请求 Server激活之后就不要关掉了,也许尝试Client端的联机。 [第1页] [第2页] [第3页] [第4页]


(转载请注明出处:http://www.chalumel.com/jiuweiyouxi/20100302/226.html)
------分隔线----------------------------
推荐内容