3
    wireless toolkit code

//クライアントモバイルのj2meコード

    public class TCPConnectSend extends MIDlet implements CommandListener {
    Display display;

    public TCPConnectSend0 () {
    frm = new Form ("TCPConnectSend0");
    sendCmd = new Command("Send",Command.SCREEN, 1);
    frm.addCommand(sendCmd);
    frm.setCommandListener(this);
    text = new TextField("text:","",40,TextField.ANY);
    frm.append(text);
    }
    public void startApp() {
    if(display==null) {
    display = Display.getDisplay (this);
    }
    display.setCurrent(frm);
    try {
    conn=(SocketConnection)Connector.open("socket://|ip-address|:80");//socket connection to the server

    outs=conn.openOutputStream();
    } catch(IOException e) { }
    }
    public void pauseApp() { }
    public void destroyApp(boolean unconditional) { }
    public void commandAction(Command c, Displayable s) {
    if(c==sendCmd) {
    try {
    outs.write((text.getString()+"\n").getBytes());
    } catch(IOException e) {}
    } else { }
    }
    }

    server code

//これはクライアントからソケットリクエストを受け取ります

    class TCPServer
    {
       public static void main(String argv[]) throws Exception
          {
             try {
                ServerSocket server = new ServerSocket(80);
        System.out.println("ip address : "+InetAddress.getLocalHost());         
        System.out.println("waiting for connection");               
        Socket s1 = server.accept();
        System.out.println("connection established");
        BufferedReader br = new BufferedReader(new
InputStreamReader(s1.getInputStream()));    
            while (true) {
                String str1 = br.readLine();
            System.out.println("client says :" +str1);              
                if (str1.equals("quit"))
                        break;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
          }
    }

//このコードを実行した後、ノキアの電話でJavaセキュリティ例外が発生しました他のポートはノキアの電話では応答しません

4

3 に答える 3

1

この問題は、Nokiaが一部のシステムアプリケーションで80ポート番号をブロックしていたために発生したため、パブリックIPアドレスとともにポート番号を変更するとうまくいきました。

于 2014-04-11T09:53:08.187 に答える
0

サーバーのパブリックIPをクライアントコードに追加する必要があります。

(SocketConnection)Connection.open( "socket://105.225.251.58" + ":" + "port" );
于 2013-04-16T11:52:46.957 に答える
0

80、443、8080などの特権ポートおよび通常は1000未満のものを使用するには、実際の電話用のコード署名証明書(Thawteなど)が必要であることに注意してください。

それ以外の場合は、8000などのより高い非特権ポートにまだ

于 2014-11-27T14:34:38.777 に答える