1

Blackberry でプログラミングするときに URL への接続を開くことができることは知っていますが、特定のポートで接続を開くことは可能ですか? たとえば、サーバーのエコーポートにデータを送信して、サーバーが稼働しているかどうかを確認し、ping 時間を測定したいとします。何か案は ?

4

2 に答える 2

1

このようなことを試してください。

// Create ConnectionFactory
ConnectionFactory factory = new ConnectionFactory();

// use the factory to get a connection descriptor
ConnectionDescriptor conDescriptor = factory.getConnection("socket://www.abc.com:portnumber");

接続を開くための URL を指定するときに、ポート番号を指定できます。

于 2012-10-22T13:06:11.153 に答える
0

このコードを試してください:-

String host  = "Your address" ;

new Thread()
{
    run()
    {
        try {
            SocketConnection connection = (SocketConnection)Connector.open("socket://" + host + ":80");
            OutputStream out = connection.openOutputStream();
            InputStream in = connection.openInputStream();
            // Standard HTTP GET request all in text
            // Only the required Host header, no body
            String request = "GET / HTTP/1.1\r\n" +
                "Host:" + host + "\r\n" +
                "\r\n" +
                "\r\n";
            out.write(request.getBytes());
            out.flush();
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            int firstByte = in.read();
            if (firstByte >= 0) {
                baos.write((byte)firstByte);
                int bytesAvailable = in.available();
                while(bytesAvailable > 0) {
                    byte[] buffer = new byte[bytesAvailable];
                    in.read(buffer);
                    baos.write(buffer);
                    bytesAvailable = in.available();
                }
            }
            baos.close();
            connection.close();
            final_OP(new String(baos.toByteArray()) );
        } catch (IOException ex) {
            final_OP(ex.getMessage());
        }
    }
}.start();

public void final_OP(final String message) {
    UiApplication.getUiApplication().invokeLater(new Runnable() {
        public void run() {
            Dialog.alert("Output" + message);
        }
    });
}    
于 2012-10-22T14:53:35.940 に答える