一、基本概念
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(); }}