基本套接字tcp/udp

一、Socket套接字是什么?

socket是一种抽象层,应用程序通过它来发送和接收数据。socket可以将应用程序添加到网络中,并与处于同一个网络中的其他应用程序进行通讯。tcp/ip协议族主要的socket类型为流套接字(stream socket)和数据报套接字(datagram socket),分别对应tcp和udp传输。

二、如何确定一个套接字

tcp/ip套接字由一个互联网地址,一个端对端协议(TCP或UDP协议),还有程序的端口号(如8080)确定。

 

三、TCP套接字---可靠,有序,面向字节流的

    tcp通讯是通过字节流传输的。

java中为TCP协议编程提供了Socket类和ServerSocket类。一个Socket实例代表了TCP连接的一端。一个TCP连接是一条抽象的双向信道(说的是客户端/服务器双方都可以发信息吧),两端分别由IP地址和端口号确定。在两端通信之前,需要先建立连接,先由客户端向服务端发送连接请求。ServerSocket实例则监听TCP连接请求,为每一个请求创建新的Socket实例。这说明了服务端需要同时处理ServerScoket实例和Socket实例。客户端则只需要处理Socket实例。

    大致步骤:1.创建socket    2.获取输入输出流进行通讯     3.关闭socket

四、UDP编程--尽力而为,不保证无差错,无序的。

    UDP 协议提供了一种不同于 TCP 协议的端到端服务。实际上 UDP 协议只实现两个功
能: 1)在 IP 协议的基础上添加了另一层地址(端口), 2)对数据传输过程中可能产生的
数据错误进行了检测,并抛弃已经损坏的数据。udp协议具有以下特点:

    1.UDP程序是通过数据报文的形式通讯的。由于不需要创建连接,所以数据报文中会包含了自己的地址信息和目的地址信息,而且数据报文信息是独立的。

    2.还有不同于tcp的是,udp是保留边界信息。那么保留边界信息是指什么呢?

      保留消息边界,就是指传输协议把数据当作一条独立的消息在网上传输,接收端只能接收独立的消息。也就是说存在保护消息边界,那么接收端一次只能接收发送端发出的一个数据包。

    那么编写udp程序需要哪些东西呢?

    一个DatagramPacket: 数据报文,包含了所有的信息

    一个DatagramSocket:  udp套接字,用于传输数据报文。

    总的步骤:1.创建DatagramPacket    2.创建DatagramSocket 3.调用socket的send方法发送报文

    

 

 

 

转载于:https://my.oschina.net/u/3052654/blog/827000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值