Java网络之TCP和UDP

1.网络基础

网络之间的连接是必须遵守相应的协议,网络协议是分层的,同层间可以通信,上层可以调用下一层,而通信协议规定,用户的应用程序是最高层,物理通信最为最底层,我们就只管和最高层之间通信,这样就编程方便许多,不用涉及底层代码,而其他层之间的通信内部有人去实现,我们不必太关注这方面。分层有一定标准,并非胡乱分层:

                                  

理解:应用层即我们编写的程序层,传输层就是TCP和UDP层,我们就和传输层打交道,网络层就是IP层,物理+数据链路层是最底层。



IP:IP协议是网络层的主要协议,支持网间互联的数据报通信,它的最大好处是提供了独一无二的ip。其主要功能是无连接数据报传送、数据报路由选择和差错控制。

ip地址本身占了四个字节,每个字节的最大是255,有点ip是真实ip,有的是虚拟ip,公网必须是真实的,而我们笔记本的ip其实是虚拟ip。网络分三类:

                


TCP和UDP协议:
           TCP协议:是专门设计用于在不可靠的因特网上提供可靠的、端到端的字节流通信的协议,它是一种面向连接的协议,有三次握手协议,即一个请求必须有一个返回,所以安全性较高,同时效率较低。
           UDP协议:UDP向应用程序提供了一种发送封装的原始IP数据报的方法、发送时不需要建立连接,是一种不可靠的连接,即请求之后无需响应,直接开始下一个请求。但是它的效率很高。

1.TCP     socket网络编程


两个java应用程序之间可以通过一个双向的网络通信连接实现数据交换,这个双向链路的一端称为一个socket。
java中需要的包在java.net,建立连接是需要远程计算机的IP地址和端口号(port),每一个地址有65536个端口。


代码:

首先建立一个类,作为服务器端,

import  java.net.*

public   class   TCPServer {

     public  static void main(String[] args) throws Exception{
         //启动一个服务器,并且指定端口号
         ServerSocket ss = new   ServerSocket (“6666”);
         //接收客户端的连接请求,在循环内表示无限接收,不止一个
         while(true){

             Socket s = ss.accept();
             
          } 
     }

}


建立一个客户端,

import  java.net.*

public   class   TCPClient {

     public  static void main(String[] args) throws Exception{
       
         //连接请求
         Socket s = new Socket (“127.0.0.1”,“6666”);
     }

}



3.UDP socket网络编程

UDP是不需要建立连接的,所以直接将请求发送就行,





客户端:




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值