⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 server.java

📁 <j2me 开发精解> 詹建光著 里所有的源码。对J2me的开发相当有帮助
💻 JAVA
字号:
package com.j2medev.ch6.socket;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;
import javax.microedition.io.ServerSocketConnection;
import javax.microedition.io.SocketConnection;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.StringItem;

public class Server implements Runnable {
    
    private ChatMIDlet midlet = null;
    private Form displayForm = null;
    private StringItem item = null;
    private ServerSocketConnection serverSocket = null;
    private SocketConnection socket = null;
    private boolean stop = false;
    
    public Server(ChatMIDlet midlet) {
        this.midlet = midlet;
        displayForm = new Form("服务器");
        item = new StringItem("连接状态:","");
        displayForm.append(item);
        midlet.setCurrent(displayForm);
    }
    
    public void run(){
        try{
            serverSocket = (ServerSocketConnection)Connector.open("socket://:1290");
            final String ip = serverSocket.getLocalAddress();
            final int port = serverSocket.getLocalPort();
            new Thread(){
                public void run(){
                    try{
                        HttpConnection conn = (HttpConnection)Connector.open("http://localhost:8080/post/publish");
                        conn.setRequestMethod(HttpConnection.POST);
                        conn.setRequestProperty("Conntent-Type", "application/octet-stream");
                        DataOutputStream dos = conn.openDataOutputStream();
                        dos.writeByte(100);//发送ip和port
                        dos.writeUTF(ip);
                        dos.writeInt(port);
                        dos.close();
                        conn.close();
                    }catch(IOException ex){
                        ex.printStackTrace();
                    }
                }
            }.start();
            item.setText("建立监听"+ip+":"+port);
            String host = System.getProperty("microedition.hostname");
            if(host != null)
                displayForm.append("主机名称:"+host+"\n");
            socket = (SocketConnection)serverSocket.acceptAndOpen();
            item.setText(socket.getAddress()+":"+socket.getPort()+"已连接");
            DataInputStream dis = socket.openDataInputStream();
            while(!stop){
                System.out.println("go");
                String result = dis.readUTF();
                displayForm.append(result+"\n");
            }
            dis.close();
            socket.close();
            serverSocket.close();
        }catch(IOException ex){
            ex.printStackTrace();
        }
    }
    
    public void stop(){
        stop = true;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -