DatagramSocket
public void close()
关闭该数据报套接字
public void receive(DatagramPacket p)
通过p接收数据报包
public void send(DatagramPacket p)
通过p发送数据报包
DatagramPacket
public InetAddress getAddress()
返回IP地址
public byte[] getData()
返回数据缓冲区
public int getLength()
返回发送或接收到的数据长度
收发数据步骤
//UDP客户端--->发送数据步骤publicclassUDPClient{publicstaticvoidmain(String[] args)throwsIOException{//1.创建UDP通讯客户端对象(DatagramSocket)//public DatagramSocket(int port)DatagramSocket socket =newDatagramSocket(8888);//2.创建数据报包//public DatagramPacket(byte[] buf, int length, InetAddress address,int port)byte[] data ="你好".getBytes();DatagramPacket packet =newDatagramPacket(data, data.length,InetAddress.getLocalHost(),9999);//3.发送数据
socket.send(packet);//4.释放资源
socket.close();}}//UDP服务端--->接收数据步骤publicclassUDPServer{publicstaticvoidmain(String[] args)throwsIOException{//1.创建UDP通讯服务端对象(DatagramSocket)//public DatagramSocket(int port)DatagramSocket socket =newDatagramSocket(9999);//2.创建数据报包,作用用来接收数据//public DatagramPacket(byte[] buf, int length)byte[] bytes =newbyte[1024*8];DatagramPacket packet =newDatagramPacket(bytes, bytes.length);//3.接收数据
socket.receive(packet);//4.解析数据报包,拿出数据byte[] data = packet.getData();int length = packet.getLength();String s =newString(data,0, length);System.out.println(s);//5.释放资源
socket.close();}}
TCP协议发送和接收数据
Socket
public void close()。
关闭套接字
public InetAddress getInetAddress()
返回套接字连接的地址
public InputStream getInputStream()
返回此套接字的输入流
public OutputStream getOutputStream()
返回此套接字的输出流
public void shutdownOutput()
设置结束标记
禁用套接字的输出流
ServerSocket
public Socket accept()
服务端等待连接
public InetAddress getInetAddress()
返回此服务器套接字的本地地址
收发数据步骤
//TCP客户端--->发送数据步骤publicclassTCPClient{publicstaticvoidmain(String[] args)throwsIOException{//1.创建TCP通讯协议客户端对象(Socket)//public Socket(String host, int port)Socket socket =newSocket(InetAddress.getLocalHost(),8888);//2.获取输出流对象OutputStream out = socket.getOutputStream();//3.写数据
out.write("你好".getBytes());//设置结束标记
socket.shutdownOutput();//4.释放资源
socket.close();}}//TCP服务端--->接收数据步骤publicclassTCPServer{publicstaticvoidmain(String[] args)throwsIOException{//1.创建TCP通讯协议服务器端对象(ServerSocket)//public ServerSocket(int port)ServerSocket serverSocket =newServerSocket(8888);//2.监听客户端Socket socket = serverSocket.accept();//3.获取输入流对象InputStream in = socket.getInputStream();//4.读取数据byte[] bytes =newbyte[1024];int readlen = in.read(bytes);String s =newString(bytes,0, readlen);System.out.println(s);//5.释放资源
socket.close();
serverSocket.close();}}