一、基本概念



1、ip地址



2、IP地址所对应的对象->InetAddress

public class InetAddressDemo {    public static void main(String[] args) throws UnknownHostException {        InetAddress localHost = InetAddress.getLocalHost();        //主机名和IP地址 System.out.println(localHost);        InetAddress liu = InetAddress.getByName("www.baidu.com");        System.out.println(liu);        System.out.println(liu.getHostAddress());        System.out.println(liu.getHostName());    }}

3、端口

二、网络分层


三、TCP编程

1、Socket套接字


package com.msbline.SocketPkg.tcpPkg.server;import java.io.DataInputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;public class Server2 {    public static void main(String[] args) throws IOException {        //服务端须要应用ServerSocket来凋谢本地端口 ServerSocket server = new ServerSocket(10086);        //接管client传输过去的数据,须要定义socket对象 Socket accept = server.accept();        //通过server获取输出流对象 InputStream inputStream = accept.getInputStream();        byte[] buf = new byte[1024];        int length = inputStream.read(buf);        System.out.println("客户端传输的数据是:"+new String(buf,0,length));        OutputStream outputStream = accept.getOutputStream();        outputStream.write("hello client".getBytes());        outputStream.close();        inputStream.close();        accept.close();        server.close();    }}
package com.msbline.SocketPkg.tcpPkg.client;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;/** * 客户端向服务端发送数据 */public class Client2 {    public static void main(String[] args) throws IOException {        //创立socket,实际上是开启实现io的虚构接口(此接口 //不算Java中的接口,而是相似于网线的插槽),须要指定数据接管放的io和端口 Socket client = new Socket("127.0.0.1",10086);        //-----向外进行输入------ OutputStream outputStream = client.getOutputStream();        outputStream.write("hello java".getBytes());        //-----接管服务器端返回的音讯------ InputStream inputStream = client.getInputStream();        byte[] buf = new byte[1024];        int length = inputStream.read(buf);        System.out.println("服务端相应"+new String(buf,0,length));        inputStream.close();        outputStream.close();        client.close();    }}

四、UDP编程


package com.msbline.SocketPkg.tcpPkg.server;import java.net.DatagramPacket;import java.net.DatagramSocket;public class UdpServer {    public static void main(String[] args) throws Exception {        DatagramSocket server = new DatagramSocket(10001);        byte[] buf = new byte[1024];        //用来接收数据 DatagramPacket packet = new DatagramPacket(buf,buf.length);        //接收数据 server.receive(packet);        System.out.println(new String(packet.getData(),0,packet.getData().length));        server.close();    }}
package com.msbline.SocketPkg.tcpPkg.client;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.util.Scanner;public class UdpClient {    public static void main(String[] args) throws Exception {        DatagramSocket datagramSocket = new DatagramSocket(10086);        Scanner scanner = new Scanner(System.in);        String str = scanner.nextLine();        DatagramPacket packet = new DatagramPacket(str.getBytes(),                str.getBytes().length,                InetAddress.getByName("localhost"),10001);        datagramSocket.send(packet);        datagramSocket.close();    }}