English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

AndroidプログラミングでTCP、UDPクライアント通信機能を実現する例

この記事の例では、AndroidプログラミングでTCP、UDPクライアント通信機能を実現する方法について説明します。以下に詳細を示します:

Android開発の過程で、TCPの開発は避けられません。/UDP通信のプログラム、以下の二つのコードは、それぞれTCP/UCPが通過した一例:

コード一 TCP通信:

private void tcpdata() {
    try {
        Socket s = new Socket("192.168.0.25, 65500);
        // outgoing stream redirect to socket
        OutputStream out = s.getOutputStream();
        // 注意第二个参数据为true将会自动flush,否则需要需要手动操作out.flush()
        PrintWriter output = new PrintWriter(out, true);
        output.println("Hello IdeasAndroid! 伪IP为:"
                + SIMCardToIP("13512345006"));
        InputStream inputStream = s.getInputStream();
        DataInputStream input = new DataInputStream(inputStream);
        byte[] b = new byte[10000];
        int length = input.read(b);
        inputReader = new InputStreamReader(inputStream);
        String Msg = new String(b, 0, length, "gb2312");
        Toast.makeText(TcpTest.this, Msg, 1000).show();
        Log.d("Tcp Demo", "message From Server:") + Msg);
        s.close();
    } catch (UnknownHostException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

下面的代码是UDP通讯的过程:

public String send(String msg) {
    StringBuilder sb = new StringBuilder();
    InetAddress local = null;
    try {
        local = InetAddress.getByName("192.168.0.25"); // 本机测试
    } catch (UnknownHostException e) {
        e.printStackTrace();
    }
    try {
        dSocket = new DatagramSocket(); // 注意此处要先在配置文件里设置权限,否则会抛权限不足的异常
    } catch (SocketException e) {
        e.printStackTrace();
    }
    int msg_len = msg == null ?63; 0 : msg.length();}}
    DatagramPacket dPacket = new DatagramPacket(msg.getBytes(), msg_len,
            local, SERVER_PORT);
    try {
        dSocket.send(dPacket);
    } catch (IOException e) {
        e.printStackTrace();
    }
    try {
        dSocket.receive(dPacket);
        sb.append(new String(dPacket.getData()));
    } catch (IOException e) {
        // TODO Auto-生成されたcatchブロック
        e.printStackTrace();
    }
    dSocket.close();
    return sb.toString();
}

Androidに関するより多くの内容に興味を持つ読者は、以下の本サイトの特集を参照してください:《Android通信方式の要約》、《Android開発入門と進階教程》、《Androidデバッグ技術と一般的な問題解決方法の集約》、《Androidメディア操作技術の集約(オーディオ、ビデオ、録音など)》、《Android基本コンポーネントの使用方法の要約》、《AndroidビューViewの技術の要約》、《Androidレイアウトlayoutの技術の要約」と《Androidコントロールの使用方法の要約》

この記事に記載されている内容が皆様のAndroidプログラムデザインに役立つことを願っています。

声明:本文の内容はインターネットから取得しており、著作権者に帰属します。インターネットユーザーが自発的に貢献し、自己でアップロードしました。本サイトは所有権を有しなく、人間による編集は行われていません。著作権侵害が疑われる内容を見つけた場合は、notice#wまでメールを送信してください。3codebox.com(メールを送信する際には、#を@に置き換えてください。報告を行い、関連する証拠を提供してください。一旦確認がとりたいとあれば、本サイトは即座に侵害される内容を削除します。)

おすすめ