Socket 编程:
1.what is Socket
网络通信的一种接口
统称:套接字
用于描述IP地址和端口,是一个通信链的句柄。
应用程序通过 “套接字” 向 网络发出请求或者应答网络请求。
Socket 分为两部分:服务端 socket,和客户端socket
(UDP 协议 是 一次性将数据打包,进行发送,不对数据传输过程中 数据的丢失 负责
UDP 发送的数据 是有限的,传输速度比较快
)
(TCP 协议 发数据时要求接收方 ,返回一个回应,传输速度比较慢)
2.Socket 基本通信模型
3.使用基于TCP协议的Socket
服务端代码如下:
1.声明一个ServerSocket 对象,并让这个Socket 在指定端口监听
ServerSocket serverSocket = new ServerSocket(端口号);
2.调用ServerSocket 的accept()方法,接受客户端发送的请求
Socket socket = serverSocket.accept();
3.从Socket 中得到 InputStream 对象
InputStream inputStream = socket.getInputStream();
4.从inputStream 中读取客户端发送的数据。
byte[] buffer= new byte[1024*4];
int temp=0;
while(temp=inputstream.read(buffer)!=-1){
system.out.println(new String(buffer,0,temp));
}
客户端代码如下:
1. 创建Socket 连接
Socket socket = new Socket("ip address",端口号);
2.写入数据到 客户端到outputStream中 通过socket 传输给 服务端。
//some codes simple。
4.使用基于UDP协议的Socket
UDP通信 方式:
服务端:
1.创建DatagramSocket 对象,并指定监听的端口号:
DatagramSocket socket = new DatagramSocket(端口号);
2. 创建空的 DatagramPacket 对象
byte data[]= new byte [1024];
DatagramPacket packet = new DatagramPacket(data,data.length);
3.使用receive方法 接收客户端所发送的数据,存放到DatagramSocket对象中。
socket.receive(packet);
客户端:
1.创建DatagramSocket 对象
DatagramSocket socket = new DatagramSocket(端口号);
2.创建一个InetAddress
InetAddress serverAddress= InetAddress.getByName(ip address);
3.创建 DatagramPacket 对象,并指定这个数据包点接收地址及端口号
4.调用Socket 对象的send 方法 ,发送数据。
原文:http://my.oschina.net/leov1/blog/515589