`
magicxin
  • 浏览: 17354 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

TCP与UDP

    博客分类:
  • Java
阅读更多
1、Socket编程客户端的主要步骤
1) 客户端提供主机地址和端口号使用socket端口建立连接,得到DataOutputStream和DataInputStream。
2) 创建Socket(stocket=ip+端口),new Socket(Server ip,Server port)试图连接,如成功才有对象
3) 调用socket.getInputStream,socket.getOutputStream获得服务器端的IO流
4) 用处理流封装后与客户端交互,原则(你读我写,一读一写)
6) 关闭IO流,socket。
? Socket编程服务器端的主要步骤
1) 服务器分配一个端口号,服务器使用accept()方法等待客户端的信号,信号一到打开socket连接,从socket中取得OutputStream和InputStream。
2) new ServerSocket(ServerSocket的功能:等待客户端的连接 ),打开端口
3) 调ServerSocket.accept等待客户连接,当连接成功返回交互的Socket
4) 调用socket.getInputStream,socket.getOutputStream获得服务器端的IO流
5) 用处理流封装后与客户端交互,原则(你读我写,一读一写)
6) 关闭单一客户调socket.close(),关闭服务器调ServerSocket.close()

2、说明TCP和UDP编程的主要差异和特点。
(1)TCP(Transmission Control Protocol,传输控制协议)
UDP(User Data Protocol,用户数据报协议)
(2)最主要区别-传输可靠性,TCP可靠而UDP不可靠。真正交由网路传送的IP封包是有一定的体积限制的( IP封包的最大体积为65536 bytes )。 由于UDP不需要可靠传输,因此相较于TCP来说,一大堆必需占据封包表头的over head都可省略,从而换取更大的payroll空间。 这样的结果,将令到单一的IP封包在作UDP连线时所携载的资料要比TCP连线多更多。 这是靠牺牲可靠性而换取得来的
(3)TCP提供的是一个连线导向(Connection Oriented)的可靠传输﹐而UDP则是一个非连线型(Connectionless)的非可靠传输。
(4)应用场合,对于某些讯息量较大、时效性大于可靠性的传输来说(比方说语音/影像),UDP的确是个不错的选择。
(5)从速度上说,UDP比TCP快,UDP不需要运用确认机制来保证资料是否正确的被接收、不需要重传遗失的资料、资料的接收可不必按顺序进行、也不提供回传机制来控制资料流的速度。


3、UDP:DatagramPacket(byte[] buf, int length)
DatagramPacket(byte[] buf, int length, InetAddress address, int port)
        DatagramPacket(byte[] buf, int length, SocketAddress address)
new InetSocketAddress("127.0.0.1",int port),表示这个包要发送到哪里,要知道destination的IP和端口,注意这个端口要与dest的端口一致,否则数据报无法知道要传送的地方。
DatagramSocket(int port)表示在本地机器上与目的机器通信的端口,与目的机器的端口无关,可以随意设置。也可以不写。
发:
byte buffer[] = out_message.getText().trim().getBytes();
   try {
    InetAddress address = InetAddress.getByName("localhost");
    // 数据包的目标端口是666(那么收方(上海)需在这个端口接收):
    DatagramPacket data_pack = new DatagramPacket(buffer,
      buffer.length, address, 666);
    DatagramSocket mail_data = new DatagramSocket();
    in_message.append("数据报目标主机地址:" + data_pack.getAddress() + "\n");
    in_message.append("数据报目标端口是:" + data_pack.getPort() + "\n");
    in_message.append("数据报长度:" + data_pack.getLength() + "\n");
    mail_data.send(data_pack);
   } catch (Exception e) {
   }

收:
DatagramSocket mail_data = null;
   try {
    mail_data = new DatagramSocket(666);
   } catch (Exception e) {
   }
   while (true) {
    if (mail_data == null)
     break;
    else
     try {
      mail_data.receive(pack);
      int length = pack.getLength();
      InetAddress addr = pack.getAddress();
      int port = pack.getPort();
      String message = new String(pack.getData(), 0, length);
      in_msg.append("收到数据长度:" + length + "\n");
      in_msg.append("收到数据来自:" + addr + "端口是:" + port + "\n");
      in_msg.append("收到数据是:" + message + "\n");
     } catch (Exception e) {
     }
   }
分享到:
评论

相关推荐

    TCP与UDP的区别 用途 例子

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

    TCP与UDP模拟实验

    在NS2中进行TCP与UDP模拟实验,可以帮助我们深入理解这两种协议的工作原理及其在不同场景下的性能表现。 首先,设置TCP和UDP连接涉及创建网络拓扑,定义节点之间的路径,以及配置每个节点上的发送者和接收者。在NS2...

    TCP与UDP的区别

    "TCP与UDP的区别" TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)是两种常用的网络传输协议。在网络通信中,选择合适的协议是非常重要的,因为不同的协议...

    TCP与UDP助手类.

    本篇将深入讲解C#中实现TCP与UDP助手类的相关知识点,帮助你更好地理解和运用这两种协议。 首先,TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。它通过建立三次握手来确保连接的可靠性,并且在数据...

    TCP与UDP区别(socket编程)

    TCP 与 UDP 区别(socket 编程) TCP(Transmission Control Protocol,传输控制协议)和 UDP(User Datagram Protocol,用户数据报协议)是 TCP/IP 协议中的两个传输层协议,它们使用 IP 路由功能把数据包发送到...

    TCP与UDP的区别、用途、例子

    标题:TCP与UDP的区别、用途、例子 描述:本文旨在深入解析传输控制协议(TCP)与用户数据报协议(UDP)的关键差异、应用场景以及实际案例,帮助读者更好地理解这两种网络通信协议。 一、TCP与UDP的基本概念 1. *...

    VC++实现TCP与UDP通讯源码

    本资源“VC++实现TCP与UDP通讯源码”是基于微软的Visual Studio 6.0开发环境,提供了这两种协议的实现示例,对于学习和理解TCP与UDP通信机制具有实际价值。 TCP是一种面向连接的、可靠的协议,它确保数据包按照正确...

    TCP_UDP_PerformanceTest 测试工具

    《TCP与UDP性能测试工具详解》 在计算机网络通信领域,TCP(传输控制协议)与UDP(用户数据报协议)是两种广泛使用的传输层协议。TCP以其可靠性和顺序传输著称,而UDP则以高效和低延迟为特点。TCP_UDP_...

    TCP/UDP编程总结

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

    tcpudp 2.1.1 TCP/UDP 调试软件

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

    TCP与UDP的QT简易实现.zip

    TCP与UDP的选择主要取决于应用需求。对于需要高可靠性、顺序无误的数据传输,如文件传输、网页浏览等,TCP是更好的选择。而对于实时性要求高、允许小部分数据丢失的场景,如音频视频传输、在线游戏等,UDP更为合适。...

    网络协议分析文档教程-【TCP 与UDP 端口扫描】.pdf

    TCP 与UDP 端口扫描

    LWIP裸机实现TCPUDP通讯

    本篇将详细讲解如何在STM32开发板上,利用LWIP库与ENC28J60网卡进行TCP和UDP通信。 首先,LWIP是为资源有限的嵌入式设备设计的,它提供了TCP、UDP、ICMP、ARP等网络协议,以及DNS和HTTP等应用层协议。在裸机环境下...

    tcp,udp测试工具

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

    TCP与UDP通信手机端.zip

    本压缩包"TCP与UDP通信手机端.zip"包含了一些关于这两种协议在手机端应用的资源,如UDP与TCP.apk的应用程序,以及可能的文档ReadMe.txt和另一个未知类型的app1。 TCP(传输控制协议)是一种面向连接的、可靠的、...

    tcp与udp.rar

    在“tcp与udp.rar”这个压缩包中,很可能包含了一些使用C语言编写的TCP和UDP通信示例代码,这些代码可以帮助开发者理解如何在实际项目中应用这两种协议。通过阅读和学习这些代码,可以深入理解TCP和UDP的工作原理,...

    TCP与UDP编程实现及详解

    TCP 与 UDP 编程实现及详解 TCP(Transmission Control Protocol,传输控制协议)和 UDP(User Datagram Protocol,用户数据报协议)是两种常用的网络传输协议,它们都是基于 IP 协议的。在网络编程中,TCP 和 UDP ...

    TCP_UDP_PerformanceTest.exe

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

    TCP与UDP多连接实例

    TCP与UDP多连接实例,供大一起共同参考学习。

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

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

Global site tag (gtag.js) - Google Analytics