Socket在Android中的实施
发布时间:2021-12-16 13:00:41 所属栏目:教程 来源:互联网
导读:Android 提供的常用的网络编程包括针对TCP/IP协议的Socket通信。Socket是一种跨平台的编程方式,可以在异构语言之间进行通信。 Socket程序的开发原理,是要实现服务器端和客户端。 服务器,使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下
Android 提供的常用的网络编程包括针对TCP/IP协议的Socket通信。Socket是一种跨平台的编程方式,可以在异构语言之间进行通信。 Socket程序的开发原理,是要实现服务器端和客户端。 服务器,使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。 客户端,使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个1024以上的端口。 下面是一个实现socket的例子: 服务器端代码: package com.socket; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; /** * com Server */ public class Main { private int ServerPort = 9999; private ServerSocket serversocket = null; private OutputStream outputStream = null; private InputStream inputStream = null; private PrintWriter printWinter = null; private Socket socket = null; private BufferedReader reader = null; public Main(){ try{ serversocket = new ServerSocket(ServerPort); System.out.println("服务启动。。。"); socket = serversocket.accept(); System.out.println("客户已连接"); }catch(Exception ex){ ex.printStackTrace(); } try{ outputStream= socket.getOutputStream(); inputStream = socket.getInputStream(); printWinter = new PrintWriter(outputStream,true); reader = new BufferedReader(new InputStreamReader(inputStream)); BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); while (true){ String message = reader.readLine(); System.out.println("client:"+message); if(message.equals("bye")||message.equals("Bye")){ break; } message = in.readLine(); printWinter.println(message); } outputStream.close(); inputStream.close(); socket.close(); serversocket.close(); System.out.print("Client is disconnected"); }catch(Exception e){ e.printStackTrace(); }finally{ } } public static void main(String[] args){ new Main(); } ![]() (编辑:我爱制作网_潮州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |