TCP和UDP

1 基本概念

  • TCP:专门设计用于在不可靠的因特网上提供可靠的、端到端的字节流通信的协议。它是一种面向连接的协议。TCP连接是字节流。
  • UDP:向应用程序提供了一种发送封装的原始IP数据报的方法,并且发送时无需建立连接,是一种不可靠的连接。
  • Socket:通常用来实现client-server连接。两个Java应用程序可通过一个双向的网络通信连接实现数据交换,这个双向链路的一段称为一个Socket。java.net包中定义的两个类Socket和ServerSocket,分别用来实现双向连接的client和server端。建立连接时所需的寻址信息为远程计算机的IP地址和端口号。TCP端口和UDP端口是分开的,各有65536个端口。
特点TCPUDP
连接性面向连接面向非连接
可靠性可靠不可靠
传输效率

2 TCP

C#实现:

//服务端
IPAddress ip = new IPAddress(new byte[]{127,1,1,1});
TcpListener server = new TcpListener(ip, 8005);
server.Start();//启动监听
TcpClient client = server.AcceptTcpClient();//接受发起连接对象的同步方法,如果没有接收到连接请求,线程阻塞在这里,下方代码不会执行
//客户端
IPAddress ip = IPAddress.Parse("127.1.1.1");
TcpClient client = new TcpClient();
client.Connect(ip,8005);//与服务端端口号一致

Java实现:
   这里写图片描述

模拟Server端:

import java.net.*;
import java.io.*;

public class TCPServer{
    public static void main(String[] args) throws Exception{
        ServerSocket ss = new ServerSocket(6666);
        while(true){
            Socket s = ss.accept();
            System.out.println("a client connect!");
            DataInputStream dis = new DataInputStream(s.getInputStream());
            System.out.println(dis.readUTF());
            dis.close();
            s.close();          
        }
    }
} 

模拟Client端:

public class TCPClient {
    public static void main(String[] args) throws Exception{
        //本机ip及Server端端口号
        Socket s = new Socket("127.0.0.1",6666);
        OutputStream os = s.getOutputStream();
        DataOutputStream dos = new DataOutputStream(os);
        Thread.sleep(30000);
        dos.writeUTF("hello server!");//unicode8省空间
        dos.flush();
        dos.close();
        s.close();//Socket连接过后关掉
    }
}

3 UDP

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值