`
lsx111
  • 浏览: 14262 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

TCP与UDP比较

 
阅读更多

通信中涉及的知识太多,下面主要说一下TCP与UDP的区别以及各自的优势。

同信的程序分为两种:
1.基于TCP协议:Socket,可靠的服务,通过服务器和客户端之间的通道进行通信

TCP程序需要java的两个包支持:
java.net.*:主要提供网络服务
ServerSocket类:服务器端程序
Socket类:客户端程序
java.io.*:传递信息流

服务器端的建立:
步骤:1.创建一个带有绑定端口的服务器
      2.等待客户端连接(此处会阻塞,这也是后面为什么要启动线程来创建客户端的原因)
      3.获取流进行通信。
这是最基本的建立过程,当然还有很多不足。
import java.io.* ;
import java.net.* ;

public class TCPServer
{
public static void main(String args[]) throws Exception
{
// 使用ServerSocket
ServerSocket server = null ;
// 每一个用户在程序中就是一个Socket
Socket client = null ;
server = new ServerSocket(8888) ;
// 等待客户端连接
client = server.accept() ;
// 向客户端打印信息:HELLO MLDN
PrintWriter out = null ;
// 准备向客户端打印信息
out = new PrintWriter(client.getOutputStream()) ;
out.println("HELLO MLDN") ;
out.close() ;
client.close() ;
server.close() ;
}
}

客户端建立:
步骤:1.创建客户端(需知道服务器的IP地址和端口号)
      2.获取流进行通信
import java.io.* ;
import java.net.* ;
public class TCPClient
{
public static void main(String args[]) throws Exception
{
// 表示一个客户端的Socket
Socket client = null ;
// 表示一个客户端的输入信息
BufferedReader buf = null ;
client = new Socket("localhost",8888) ;
buf = new BufferedReader(new InputStreamReader(client.getInputStream())) ;
System.out.println(buf.readLine()) ;
buf.close() ;
client.close() ;
}
}

上述是TCP的建立过程,它的特点是通信之前需要服务器和客户端进行连接,在服务器和客户端之间相当于有一个管道,

信息通过管道进行传递,这也体现了它安全的特点,在启动时一定要先启动服务器,再启客户端,否则客户端会找不到

服务器,也就无法通信。

2.基于UDP协议:不可靠,短信功能。
需要的类:
DatagramSocket
DatagramPacket
服务器端的建立:
public class DatagramSender {
public static void main(String args[]) throws Exception {
//1.创建要用来发送的本地地址对象
SocketAddress localAddr = new InetSocketAddress("192.168.1.147",13000);
//2.创建发送的Socket对象
DatagramSocket dSender = new DatagramSocket(localAddr);
int count=0;
while(true){
// 创建要发送的数据,字节数组
count++;
//3.要送送的数据
byte buffer[] = (count+"-hello").getBytes();
//4.发送数据的目标地址和端口
SocketAddress destAdd = new InetSocketAddress("192.168.1.149",14000);
//5.创建要发送的数据包,指定内容,指定目标地址
DatagramPacket dp = new DatagramPacket(buffer, buffer.length,destAdd);
dSender.send(dp);//6.发送
System.out.println("数据己发送: "+count);
Thread.sleep(1000);
}
}
}
客户端的建立:
public class DatagramReciver {
public static void main(String args[]) throws Exception {
//1.创建要用来发送的本地地址对象
SocketAddress localAddr = new
InetSocketAddress("192.168.1.149", 14000);
//2.接收的服务器UDP端口
DatagramSocket recvSocket = new DatagramSocket(localAddr);
while(true){
//3.指定接收缓冲区大小
byte[] buffer = new byte[20];
//4.创建接收数据包对象,指定接收大小
DatagramPacket packet = new DatagramPacket(buffer,
buffer.length);
//5.阻塞等待数据到来,如果收到数据,存入packet中的缓冲区中
System.out.println("UDP服务器等待接据:"+recvSocket.getLocalSocketAddress());
recvSocket.receive(packet);
//得到发送方的ip和端口
SocketAddress address = packet.getSocketAddress();
//转换接收到的数据为字符串
String msg=new String(packet.getData()).trim();
//接收到后,打印出收到的数据长度
System.out.println("recv is:"+msg+" from:"+address);
}
}
}
上面是UDP建立的过程,与TCP相比,它的建立不用在服务器和客户端之间取得联系,只需要知道要发送的目的地和端口即

可,它比较类似于发短信,只需要知道对方的手机号码,不关心对方的手机是否开机,而TCP类似打电话,只有在对方接

通电话时才可以进行通信,否则将处于等待状态(阻塞)。它传递信息是以包的形式进行传递,所以在传输一些文件时

会比TCP传递的更快。启动时可随意启动,但如果先启动服务器,会出现丢包的现象,所以,如何抓包是我们要考虑的问

题。

由于TCP是一种面向连接的协议,所以,在使用TCP通信时,双方需要首先建立连接再进行通信,这需要花费一定的建立

连接的时间。但是在建立连接之后,双方就可以像电话联系那样准确、同步地进行通信。而使用UDP通信时,由于UDP是

一种无连接的协议,所以,可以随时进行收/发数据报,因此速度较快。但是这种通信方式是一种不可靠的通信方式,

数据报可能被丢失、延误等等。

这两种通信方式有各自的特点,因此,它们被应用在不同的领域之中。总的来说, TCP是一种可靠的协议,所以它被广

泛应用在文件传输、远程连接等需要数据被可靠传输的领域;UDP比TCP相对简单且容易管理,它被应用在一些局域网系

统的应用程序中。
[/align][align=left]
[align=left][/align]
分享到:
评论
1 楼 乌鸟heart 2012-11-06  
今晚看看!

相关推荐

    TCP_UDP_PerformanceTest 测试工具

    总结来说,TCP_UDP_PerformanceTest工具是评估和比较TCP与UDP性能的实用工具,通过对两种协议的实际测试,帮助开发者和网络管理员理解不同协议在实际环境中的表现,优化网络服务的性能和效率。对于从事网络编程和...

    TCP&UDP测试工具_tcp&udp_TCP/UDP测试工具_TCP工具_

    在IT行业中,网络通信是至关重要的部分,而TCP(传输控制协议)与UDP(用户数据报协议)作为两种主要的传输层协议,扮演着不同角色。TCP提供的是面向连接、可靠的、基于字节流的传输服务,而UDP则是无连接、不可靠的...

    tcpudp 2.1.1 TCP/UDP 调试软件

    "tcpudp 2.1.1 TCP/UDP 调试软件"是一款专门用于分析和调试TCP与UDP协议的工具,对于初学者来说,它可以帮助理解这两种协议的工作原理,以及如何在实际应用中使用它们。该软件可能包含了如下的功能特性: 1. 数据包...

    tcp,udp测试工具

    2. UDP数据发送与接收:测试工具可以模拟UDP数据包的发送和接收,分析数据包的到达情况,检测丢包、乱序问题,同时也可以计算传输速率。 3. 压力测试:通过发送大量数据包来评估TCP或UDP在高负载下的表现,检测网络...

    TCP-UDP服务管理 3.01

    TCP(Transmission Control Protocol)与UDP(User Datagram Protocol)是网络通信中的两种主要传输协议,它们在互联网协议栈中位于应用层和传输层之间,为上层应用提供数据传输服务。理解TCP和UDP的区别以及如何...

    TCP/UDP网络调试工具

    在IT行业中,网络通信是软件开发中的重要环节,TCP(传输控制协议)和UDP(用户数据报协议)作为两种主流的传输层协议,被广泛应用于各种网络应用中。本篇将详细阐述TCP/UDP网络调试工具及其在开发过程中的作用。 ...

    TCP/UDP socket 调试工具

    SocketTool调试软件是一款网络TCP/UDP通信调试工具,本工具集功能强大与简单易用为一体,是无需安装的免费绿色软件。她可以帮助网络编程人员、网络维护人员检查所开发的网络应用软硬件的通信状况。 ★ 全面集成 ...

    TCP_UDP_PerformanceTest.exe

    《TCP与UDP性能测试工具详解》 在计算机网络通信领域,TCP(传输控制协议)与UDP(用户数据报协议)是两种重要的传输层协议。TCP以其可靠性和有序性著称,而UDP则以其高效和实时性受到青睐。针对这两种协议的性能...

    TCP&UDP测试工具使用教程

    在IT领域,网络通信是至关重要的部分,TCP(传输控制协议)和UDP(用户数据报协议)是两种主要的传输层协议。TCP提供可靠的数据传输服务,而UDP则以更低的延迟和更高的效率进行无连接的数据传输。对于网络编程人员和...

    TCP&UDP;调试工具(ZLG)

    TCP(Transmission Control Protocol)与UDP(User Datagram Protocol)是网络通信中的两种主要传输协议,它们在互联网协议族(Internet Protocol Suite)中扮演着至关重要的角色。周立功开发的“TCP&UDP调试工具”...

    小飞机-TCP-UDP测试工具.zip

    《小飞机:网络通信的TCP与UDP测试利器》 在信息技术高速发展的今天,网络通信扮演着至关重要的角色。为了确保网络应用的稳定性和效率,测试工具的使用变得越来越普遍。"小飞机-TCP-UDP测试工具"就是这样一个专门...

    TCP-UDP数据包自动发送工具V3.01版本

    在信息技术领域,网络通信是核心部分之一,TCP(传输控制协议)与UDP(用户数据报协议)作为两种主要的传输层协议,为数据的可靠传输提供了基础。TCP-UDP数据包自动发送工具V3.01版本,作为一个实用工具,为程序员和...

    TCP和UDP socket调试工具V2.2

    《TCP与UDP Socket调试工具V2.2详解》 在计算机网络编程中,TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种常见的传输层协议,它们在数据传输方面各自有着独特的特性和应用场景。本文...

    TCP与UDP模拟实验

    例如,可以通过比较TCP和UDP的吞吐量、丢包率、延迟等指标来评估它们在特定环境下的性能。此外,还可以通过改变网络条件(如带宽、延迟、丢包率)来研究协议的适应性。 总结来说,"TCP与UDP模拟实验"是通过NS2来...

    TCP&UDP测试工具

    TCP(Transmission Control Protocol)与UDP(User Datagram Protocol)是互联网中最基础的两种传输层协议,它们在计算机网络通信中扮演着至关重要的角色。本篇文章将详细介绍这两种协议,并结合一款名为"TCP&UDP...

    TCP与UDP的区别 用途 例子

    理解TCP与UDP的区别及其用途,对于网络编程和系统设计至关重要。 首先,TCP是一种面向连接的协议,它在数据传输前会建立一个可靠的连接。这个过程包括三次握手,确保通信双方都准备好进行数据交换。TCP提供顺序传输...

    STM32开发工具 TCP&UDP测试工具

    STM32开发工具 TCP&UDP测试工具STM32开发工具 TCP&UDP测试工具STM32开发工具 TCP&UDP测试工具STM32开发工具 TCP&UDP测试工具STM32开发工具 TCP&UDP测试工具STM32开发工具 TCP&UDP测试工具STM32开发工具 TCP&UDP测试...

    TCP&UDPDebug_tcpudpdebug_tcp_TCP_UDpdebug_UDP_测试工具_

    TCP(Transmission Control Protocol)与UDP(User Datagram Protocol)是互联网协议中的两种主要传输层协议,它们在计算机网络通信中扮演着至关重要的角色。本测试工具专注于帮助开发者在创建网络通信程序时,对TCP...

    TCP/UDP编程总结

    通过阅读TCP UDP笔记.doc,深入理解TCP连接与断开过程.pdf中的细节,以及TCP与UDP编程步骤.pdf的实践指导,初学者可以逐步构建起完整的TCP/UDP编程能力。在实际项目中,灵活运用这些知识,可以有效地处理各种网络...

    TCP&UDP;测试工具

    一个测试TCP/UDP连接的工具,通过软件与服务器建立连接,测试收发信息

Global site tag (gtag.js) - Google Analytics