Java笔记(二十九)网络编程

概述 网络模型

网络通讯的要素

ip地址:网络中设备的标识符

端口:用于标识同一台设备上不同的进程,有效端口:0~65535,其中0~1024是系统使用端口或者保留端口

TCP与UDP

UDP特点:

面向无连接,速度快,不可靠

数据包中封装了数据、源和目的

每个数据报最大为64K

TCP特点:

面向连接,通过三次握手建立连接,,安全可靠

经常用于大数据的传输

Socket套接字

Socket就是为网络服务提供的一种机制

通信的两端都有Socket

网络通信其实就是Socket间的通信

数据在两个Socket间通过IO传输

UDP传输

DatagramSocket:UDP套接字

DatagramPacket:UDP数据报

下面是UDP实现的简单传输

1: import java.net.*; 2: import java.io.*; 3:  4: /* 5: 服务器读取键盘的数据,变成大写发送给客户端 6: */ 7:  8: class UdpServerDemo 9: {main(String[] args) throws Exception 11:{ 12://建立udp服务 13:DatagramSocket ds = new DatagramSocket(); 14:  15://建立键盘输入流 16:BufferedReader bufr = 17:new BufferedReader(new InputStreamReader(System.in)); 18:  19:String line = null; 20:  21:while( (line = bufr.readLine()) != null) 22:{ 23://定义数据包 24:byte[] data = line.toUpperCase().getBytes(); 25:InetAddress ia = InetAddress.getLocalHost(); 26:int port = 10000; 27:DatagramPacket dp = new DatagramPacket(data,data.length,ia,port); 28:  29://发送数据包 30:ds.send(dp); 31:} 32: 33://关闭资源 34://ds.close(); 35:  36:} 37: } 38:  39: class UdpClientDemo 40: {main(String[] args) throws Exception 42:{ 43://建立UDP服务 44:DatagramSocket ds = new DatagramSocket(10000); 45: 46://定义接收数据包[1024]; 48:DatagramPacket dp = new DatagramPacket(data,1024); 49:  50:while(true) 51:{ 52://接收数据包 53:ds.receive(dp); 54: 55://打印相关信息 56:System.out.println("Address:"+dp.getAddress().getHostAddress()+"—port:"+dp.getPort()); 57:System.out.println(new String(dp.getData(),0,dp.getLength())); 58:} 59:  60://关闭资源 61://ds.close(); 62:  63:} 64: }坚守自己的原则,世界上的诱-惑很多,

Java笔记(二十九)网络编程

相关文章:

你感兴趣的文章:

标签云: