网络编程基础知识

一、网络编程三要素:

1IP

2、端口:在计算机上,可同时有多个程序接受网络数据,每个程序都至少占用一个端口

3、协议:双方都要使用同一种协议

 

二、IP:IP地址是计算机在互联网上,唯一标示此计算机的地址

IP地址的组成:网络号码 + 主机地址

A类:第一段为网络号,后三段为本地计算机主机号    1.0.0.1---127.255.255.254

B类:前两段为网络号,后两段为本地计算机主机号   128.0.0.1---191.255.255.254

C类:前三段为网络号,最后一段为本地主机号码        192.0.0.1---223.255.255.254

D类:                                         224.0.0.1---239.255.255.254

E类:                                         240.0.0.1---247.255.255.254

 

子网掩码:全部为1的是子网掩码,子网掩码相同的主机可以相互访问

 

特殊地址:127.0.0.1 回环地址,可用于测试本机的网络是否有问题。

DOS命令:ping命令:测试网络

         ipconfig:查看本机IP地址

 

三、端口

1、物理端口:网卡口

2、逻辑端口:由操作系统定义并维护。Windows 下,逻辑端口的范围为0---65535

3、每个网络应用程序都至少占用一个逻辑端口,也可以同时占用多个;

4、每个端口同一时刻只能被一个应用程序占用

4、有效端口:0---65535,其中0---1024系统使用或者保留端口

 

四、协议

1、网络传输协议:UDPTCPHTTPFTP....

2、网络编程涉及到的协议:TCPUDP

3UDP

3/1 先将数据打包

3/2 不需要连接,可以没有接收方,发送方直接发送即可

3/3 由于不需要连接,不安全,速度快

      类似于:广播。电视

3/4 发送的数据大小有限制,限制在64K

4TCP

4/1 面向 连接的,必须要有接受方

4/2 安全,速度慢(连接是需要双方发送握手信息)

      类似于:打电话


五、InetAddress

1、主要功能

InetAddress getByName(String hostName):获取任意主机

getHostName():获取主机名

getHostAddress():获取主机IP地址

 

例:

InetAddress add = InetAddress.getByName("Jaff");


 

六、UDP的发送方

1、实例化一个SocketDatagramSocket

2、准备数据:

2/1 目标IP

2/2 目标端口

2/3 信息内容

3、封装数据报:DatagramPacket

4、调用DatagramSocketsend()方法,发送数据报

例:

DatagramSocket sendSocket = new DatagramSocket();
InetAddress ip = InetAddress.getByName("Jaff-pc");
int port = 8888;
byte[] byteArray = "hello";
Datagrampaccket packet = newDatagramPacket(byteArray,byteArray.length,ip,port);
sendSocket.send(packet);
sendSocket.close();


 

七、UDP的接受方

1、建立Socket对象:DatagramSocket(监听端口)

2、建立一个空的byte[]数组,准备接受数据

3、使用byte[]数组建立一个空的DatagramPacket对象,用于获取连接

4、调用DatagramSocketreceive()等待信息

5、一旦有信息回来,receice()将会返回,并将信息填充到对象中

6、通过数据报对象获取信息

例:

DatagramSocket socket = new Datagramsocket(8888);
byte[] byteArrar = new Byte[1024]
DatagramPacket packet = newDatagramPacket(byteArray,byteArray.kength)
socket.receive(packet);
String ip = packet.getAddress().getHostAddress();
byte[] infoArray = packet.getData();
String str = new String(infoArray,packet.getLength());
socket.close();


 

八、TCP发送方

1、面向连接的,一定要有接收方存在

2、步骤;

2/1 实例化一个Socketjava.net.Socket

构造方法:Socket(String host,int port)

2/2 因为要发送,通过Socket对象获取一个输出流

2/3 通过输出流输出信息

2/4 释放资源

 

九、TCP的接受方

1、实例化SocketServerSocket(监听端口)

2、调用ServerSocketaccept()方法等待客户端连接

3、一旦有客户端连接,accept()方法会返回一个Socket对象,此Socket对象跟发送端的Socket对象是对应的

4、由于要接受数据,从此Socket中获取一个输入流

5、读取数据

6、释放资源


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值