网络编程简单学习
创始人
2024-03-04 19:07:07

目录

一、 概述

1. 什么是计算机网络?

2. 网络编程的目的

3. 需要达到什么样的效果?

二、 网络通信的两个要素

1. 通信双方地址

2. 规则:网络通信协议

三、IP地址

1. IP地址概述

2. IP地址分类

3. 域名

四、端口

五、通信协议

六、TCP实现聊天 

七、TCP文件上传实现

八、Tomcat

关于C/S与B/S的区别? 

 九、UDP

1. UDP消息发送

 2. UDP聊天实现

3. UDP实现多线程在线咨询

十、URL下载网络资源


一、 概述

1. 什么是计算机网络?

计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。

2. 网络编程的目的

进行信息交换、数据交换、通信

3. 需要达到什么样的效果?

  • 如何准确的定位网络上的一台(多台)主机
  • 找到了主机之后怎么进行数据传输?

二、 网络通信的两个要素

1. 通信双方地址

①IP

②端口号

2. 规则:网络通信协议

常见的协议:http、tcp、udp、ftp。。。

三、IP地址

1. IP地址概述

唯一定位一台网络上计算机

127.0.0.1:本地localhost

2. IP地址分类

  • ipv4 / ipv6

        ipv4:127.0.0.1 四个字节,0-255,总共约42亿个

        ipv6: fe80::7c35:c70b:19ee:ba00%21   128位,8个无符号整数

  • 公网 / 私网

        192.168.xx.xx :是专门给组织内部使用的

        ABCD类地址

3. 域名

域名的产生就是为了解决IP问题 

四、端口

端口表示计算机上的一个程序的进程

  • 不同的进程有不同的端口号,用来区分软件
  • 规定端口0-65535
  • UDP和TCP的端口均为0-65535
  • 端口分类:公有端口 0-1023(尽量不要使用)---- HTTP:80,https:443 ,ftp:21,Telent:23;常见的程序注册端口:1024-49151  分配给用户或者程序 ---- tomcat:8080,mysql:3306,Oracle:1521;动态端口:49152-65535 
  • 常见命令:netstat -ano(查看所有的端口);netstat -ano|findstr " "(查看指定端口);tasklist|findstr " " (查看指定端口的进程)

五、通信协议

协议:约定

网络通信协议:速率、传输码率等等、

TCP/IP协议簇:实际上是一组协议

重要协议对比

TCP:用户传输协议

  • 连接、稳定
  • 三次握手、四次挥手
  • 客户端、服务端
  • 传输完成、释放连接,效率低

UDP:用户数据报协议

  • 不连接、不稳定
  • 客户端、服务端,但是没有明确的界限
  • 无论有没有准备好都可以发送,不论对方有没有准备好

六、TCP实现聊天 

客户端

package study01;import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.nio.charset.StandardCharsets;//客户端
public class TcpClient {public static void main(String[] args) {Socket socket =null;OutputStream outputStream =null;try {// 1. 连接地址InetAddress serverIP = InetAddress.getByName("127.0.0.1");// 2. 创建端口号int port=9999;// 3. 创建一个socket连接socket = new Socket(serverIP,port);// 4. 发送消息outputStream = socket.getOutputStream();outputStream.write("你好".getBytes(StandardCharsets.UTF_8));} catch (Exception e) {e.printStackTrace();}finally {if(socket!=null){try {socket.close();} catch (IOException e) {e.printStackTrace();}}if(outputStream!=null){try {outputStream.close();} catch (IOException e) {e.printStackTrace();}}}}
}

服务端

package study01;import com.sun.xml.internal.messaging.saaj.util.ByteOutputStream;import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;//服务端
public class TcpService {public static void main(String[] args)  {ServerSocket serverSocket =null;Socket accept = null;InputStream is = null;ByteArrayOutputStream baos=null;//1. 需要创建一个地址给客户端进行连接,使用套接字,然后客户端可以通过9999连接服务端try {serverSocket = new ServerSocket(9999);//2. 等待客户端的连接accept = serverSocket.accept();//此时这里的socket就是客户端的socket//3. 读取客户端的信息is = accept.getInputStream();/** 使用管道流* */baos=new ByteArrayOutputStream();byte[] buffer=new byte[1024];int len;if((len=is.read(buffer))!=-1){baos.write(buffer,0,len);}System.out.println(buffer.toString());} catch (IOException e) {e.printStackTrace();}finally {//关闭资源if(serverSocket!=null){try {serverSocket.close();} catch (IOException e) {e.printStackTrace();}}if(accept!=null){try {accept.close();} catch (IOException e) {e.printStackTrace();}}if(is!=null){try {is.close();} catch (IOException e) {e.printStackTrace();}}if(baos!=null){try {baos.close();} catch (IOException e) {e.printStackTrace();}}}}
}

七、TCP文件上传实现

客户端

服务端

八、Tomcat

服务端

  • 自定义 S
  • tomcat作为服务端 S:Java后台开发

客户端

  • 自定义 C
  • 浏览器作为客户端 B

关于C/S与B/S的区别? 

 九、UDP

1. UDP消息发送

发送端

 【补充:最后需要关闭流】

单纯只有客户端的话是不能连接成功的!会出现错误,所以其实是还是要有一个服务端接收消息,但是客户端并不用像TCP里面一样等待连接建立成功才可以! 

接收端

 2. UDP聊天实现

发送端

接收端

3. UDP实现多线程在线咨询

发送端线程

 接收端线程

 学生端

老师端

十、URL下载网络资源

URL:统一资源定位符

 

 前提是tomcat是开启的

 这样就可以了,同样我们可以使用这个方式去网上爬取资源,比如收费歌曲等等!!!

=========================================================================

好了,最近找到工作后就有些懈怠了,现在需要重新抓起来了!!!加油哇,各位!

相关内容

热门资讯

demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...