网络编程 IP:定义网络上的节点 端口:区分不同的软件 URL:统一资源定位符
网页编程:应用 js jsp。。。。。 网络编程;协议 底层 数据传输。。。。。。
协议 UDP:写信 不安全 效率高 协议简单 大小不超过60k TCP:打电话 安全 协议复杂 麻烦 没有限制
IP: 定义网络上的节点,节点的地址 本机IP:127.0.0.1 域名:localhost
端口:区分软件 统一协议下的端口号不能冲突 建议使用8000以上的端口号 8000以内的成为预留端口号 InetSocketAddress:这个类实现了IP套接字地址(IP地址+端口号)
爬虫URL URL : 统一资源定位符 是互联网的三大基石之一: html http url 协议 域名 端口 资源 URL : 类 URL代表一个统一资源定位符,一个指向万维网上的“资源”
协议:传输层协议 UDP:非面向连接,写信,不安全,协议小,简单,效率高,大小限制一般不超过60k TCP:面向连接 打电话,安全,效率低,没有大小限制 3次握手 UDP DatagramSocket:定义发送端和接收端 DatagramSocket:打包
UDP定义发送端 1.定义发送端
DatagramSocket ds=new DatagramSocket(8888);2.准备数据
File file=new File("F:\\Student笔记\\word.txt"); InputStream reader=new FileInputStream(file);3.打包
DatagramPacket dp=new DatagramPacket(bytes,0,bytes.length,new InetSocketAddress("127.0.0.1",9998));4.发送
ds.send(dp);5.关闭
ds.close();UDP接收端 1.定义接收端
DatagramSocket dgs=new DatagramSocket(9998);2.准备包裹
byte[] bytes=new byte[1024*60]; DatagramPacket packet=new DatagramPacket(bytes,bytes.length);3.接收数据
dgs.receive(packet);4.处理数据
File file=new File("F:\\Student笔记\\wordcopy.txt"); OutputStream os=new FileOutputStream(file); byte[] arr=packet.getData(); int len=packet.getLength(); os.write(arr,0,len);5.关闭
os.close(); dgs.close();TCP 客户端 1.定义我是一个客户端 Socket
Socket client=new Socket("127.0.0.1",8998);2.通过IO操作发送数据
//获取输入流 DataOutputStream dos=new DataOutputStream(new BufferedOutputStream(client.getOutputStream())); //写字符串 Scanner sc=new Scanner(System.in); System.out.println("请输入账号:"); String number=sc.next(); System.out.println("请输入密码:"); String passWrd=sc.next(); String str=new String("number="+number+"&passWord=" +passWrd); dos.writeUTF(str);3.刷出
dos.flush();4.关闭
dos.close(); client.close();服务端:
1.定义一个服务端 ServerSocket
ServerSocket serve=new ServerSocket(8998);2.阻塞式监听 Socket accept()监听连接套接字并接收它
Socket socket=serve.accept();3.通过IO读入数据
DataInputStream dis=new DataInputStream(new BufferedInputStream(socket.getInputStream())); //读入数据 String str=dis.readUTF(); String[] words=str.split("&"); String number=words[0].concat("number=");4.处理数据
if (number.equals("123456789")){ System.out.println("账号正确"); String passWord=words[1].concat("passWord="); if (passWord.equals("Pan123456")){ System.out.println("密码正确"); } }else { System.out.println("账号或密码错误"); } System.out.println(str);5.关闭
dis.close(); socket.close(); serve.close();