English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
この記事の例では、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(メールを送信する際には、#を@に置き換えてください。報告を行い、関連する証拠を提供してください。一旦確認がとりたいとあれば、本サイトは即座に侵害される内容を削除します。)