什么是Socket
Socket的英文原意是“插座”
所谓Socket通常也称作“套接字”,用于描述IP地址和商品,是一个通信链的句柄。
应用程序通常通过“套接字”向网络发出请求或者应答网络请求。
TCP通信
客户端Socket
服务端ServerSocket
//创建一个ServerSocket对象,并让这个Socket在4567端口监听
ServerSocket ss = new ServerSocket(4567);
//调用ServerSocket的accept()方法,接受客户端所发送的请求,返回客户端Socket
Socket socket = ss.accept();
//从Socket当中得到InputStream对象
InputStream inputStream =socket.getInputStream();
byte buffer[] = new byte[1024*4];
int temp = 0;
while((temp = inputStream.read(buffer)) !=-1){
}
客户端:
Socket socket = new Socket(“192.168.1.104”,4567);
OutputStream os = socket.getOutputStream();
os.write(…..);
os.flush();
UDP服务端:
DatagramSocket socket = newDatagramSocket(4567);
byte data[] = new byte[1024];
//创建一个空的DatagramPacket对象
DatagramPacket packet = newDatagramPacket(data, data.length);
//使用receive方法接收客户端所发送的数据
socket.receive(packet);
packet.getData(); packet.getOffset()数据并不总是从第0位开始接收 packet.getLength()
客户端
DatagramSocket socket = newDatagramSocket(4567);
InetAddress serverAddress =InetAddress.getByName(“192.168.1.104”);
String str = “hello”;
byte data[] = str.getBytes();
DatagramPacket packet = new DatagramPacket(data, data.length,serverAddress);
socket.send(packet); //发送数据包