1,网络编程中的网络要素:
三个都进行注解。
ip地址:每一个主机的标识。
端口:数据的传输入口和出口。0-65535 0-1024属系统端口。
协议:通讯的规则。UDP,TCP。
2,tcp和udp的特点:
TCP:面向连接,安全。连接是通过三次握手完成的。可靠连接。分客户端和服务端。
UDP:面向无连接,速度快,不安全。不可靠连接。对资源消耗较少。
因为不需要建立连接,通过数据报来完成数据的封装,并通过socket服务的send方法进行发送。分发送端和接收端。比如:QQ聊天。
3,UDP的发送端和客户端建立的思路:
举例说明?
聊天程序。
发送端思路:
(1)建立udp的socket服务
(2)将要发送的数据变成字节数组,并封装到数据包中并明确目的地址和端口
(3)通过socket服务的send方法将数据包发送出去
(4)视情况而定关闭资源
DatagramSocket ds = new DatagramSocket(10001);
Byte[] arr = "string data".getBytes();
DatagramPacket dp = new DatagramPacket(arr,arr.length,InetAddress.getName("192.168.1.100"),10001);
ds.send(dp);
ds.close();
接收端思路
(1)建立UDP的socket服务,因为是接收端,要明确哪个端口进来的数据是由该应用程序所处理的。所以要监听一个端口
(2)该端口进来的数据内容比较多,需要分别处理,所以方便的方式就是将其封装成数据包对象
(3)通过socket服务的receive方法将收到的数据存入数据包中
(4)对数据包的数据进行获取,进行基本的打印
(5)视情况而定,关闭资源
DatagramSocket ds = new DatagramSocket(10001);
Byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf,buf.length);
Ds.receive(dp);
String ip = dp.getAddress().getHostAddress();
String data = new String (dp.getData(),0,dp.getLength());
int port = dp.getPort();
Ds.close();
4,TCP传输使用的对象和原理。
Tcp协议在java中所对应的对象是:socket,ServerSocket
客户端:
(1)建立客户端的socket服务,通常需要在初始化的时候明确服务器的地址和端口,因为要建立连接
(2)当连接成功,就可以使用socketIO流中的输入和输出流对数据进行操作
(3)关闭流
Socket s = new Socket("192.168.1.100",7777);
OutputStream out = s.getOutputStream();
PrintWriter pw = new PrintWriter(out,true);
服务端:
(1)建立服务端的socket服务,需要监听一个端口
(2)通过accept方法获取每一个连接过来的socket对象,通过这些socket对象自己的 IO流与对应的客户端进行通讯
(3)关闭客户端对象,节约服务端资源
(4)视情况而定,关闭服务端
ServerSocket ss =new Serversocket(10001);
Socket s = ss.accept();
InputStream in = s.getInputStream();
BufferedReader bufIn = new BufferedReader(new InputStreamReader(in));
String line = bufIn.readLine();
S.close();
Ss.close();