本文实例简述了Android中Socket通信的实现方法,具体内容如下:
一、socket通信概述
通俗的来说套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。
应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了套接字(Socket)接口。应用层可以和传输层通过Socket接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。
总之一句话,socket是对TCP/IP协议的封装。
二、使用Socket步骤(client):
1、建立Socket(Tcp)连接
在Java中建立Socket连接是相当容易的事情,使用类库提供的Socket类就可以实现。
1
2
|
Socketclient= null ; //表示客户端
client=newSocket( "localhost" , 5000 );
|
2、发送数据
1
|
PrintStreamout=newPrintStream(socket.getOutputStream()); //发送数据,PrintStream最方便
|
3、接收返回信息
1
|
buf=newBufferedReader(newInputStreamReader(socket.getInputStream()));; //一次性接收完成读取Socket的输入流,在其中读出返回信息
|
4、关闭Socket
1
|
Socket.close();
|
三、补充:
1
2
3
4
5
6
7
8
9
10
11
12
|
Socketsever端(非多线程实现)
ServerSocketserver= null ; //定义ServerSocket类
Socketclient= null ; //表示客户端
PrintStreamout= null ; //打印流输出最方便
server=newServerSocket( 8888 ); //服务器在8888端口上监听
System.out.println( "服务器运行,等待客户端连接。" );
client=server.accept(); //得到连接,程序进入到阻塞状态
Stringstr= "helloworld" ; //表示要输出的信息
out=newPrintStream(client.getOutputStream());
out.println(str); //向客户端输出信息
client.close();
server.close();
|