黑马程序员——方法总结之网编

------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

/*
1.IP地址类	InetAddress
	所在包:java.net.InetAddress;
	异常:	java.net.UnknowHostException;
	此类表示IP地址,该类的对象已经存在,无构造方法,只能通过静态方法获取。
		类无构造方法的情况:
			A:该类的对象已经存在
			B:单例设计模式,由于内存中只允许存在一个对象,所以不允许创造对象。如:Runtime
			C:类的方法全部是静态的,无序创造对象。如:Math,Arrays,Collentions
	该类获取对象的方法是:
		根据主机名或IP地址的字符串表示得到IP地址的对象,一般使用ip地址
		public static InetAddress getByName(String host);
	常用的方法有:
		public String getHostName()		获取主机名
		public String getHostAddress()		获取主机IP地址
		
Socket对象:是网络上具有唯一标识的IP地址和端口号组合在一起构成的唯一能够识别的标识符套接字。

2.UDP协议
	udp协议不建立连接,数据传输需要打包,目标主机信息和端口号都包装在数据包中
	效率高但是不安全,不保证数据可以被接收到。
	发送数据:
		A:创建发送端Socket对象:DatagramSocket套接字对象
			DatagramSocket ds = new DatagramSocket();
		B:通过传递数据参数创建数据报包对象:DatagramPacket存放数据报
			DatagramPacket(byte[] buf,int length,InetAddress address,int prot);
			存放的内容有:数据、其长度、远程主机IP地址对象、端口号
		C:调用DatagramSocket对象的方法发送数据
			public void send(DatagramPacket p);
		D:释放资源
			ds.close();
	接收数据:
		A:创建接收端Socket对象,指明端口号
			DatagramSocket(int port);
		B:创建数据报包接收数据
			DatagramPacket(byte[] buf,int length);
		C:调用Socket对象的方法接收数据存入数据报包中
			public void receive(DatagramPacket p);
		D:通过数据报包的方法解析数据,DatagramPacket的常用方法有:
			public InetAddress getAddress();获取发送端的IP对象
			public byte[] getData();获取数据缓冲区
			public int getLength();获取数据的实际长度
			
3.TCP协议
	tcp协议数据的传输需要先建立连接,数据在连接通道内传输,数据安全但是效率比较低
	由于要先建立连接后才能传输数据,所以服务端必须先开启
	接收数据:
		A:创建服务端Socket对象,指明端口号
			ServerSocket(int port);
		B:监听客户端并建立连接,返回一个对应的Socket对象以便得到对应的信息
			public Socket accept();
		C:通过返回的Socket对象获取输入流对象,读取通道内数据
			public InputStream getInputStream();
		D:释放资源
			ss.close();		一般服务端不会关闭
	发送数据:
		A:创建发送端Socket对象,指明目标IP和端口号
			Socket(String host,int port);
		B:获取输出流对象,写数据到通道内
			public OutputStream getOutputStream();
		C:释放资源
			s.close();
	
*/



你可能感兴趣的:(java基础,java,网编,经典案例)