JAVA--两张图带你看遍Socket编程(附TCP与UDP传输核心代码)

来源:互联网 发布:用java编写app 编辑:程序博客网 时间:2024/05/21 14:31

Socket编程----TCP传输

TCP是面向连接的协议,需要校验,可靠的连接,效率慢

TCP传输类似于打电话


Socket编程----UDP传输

TCP是面向非连接的数据报协议,不需要校验,不可靠的连接,效率快

TCP传输类似于寄快递


注意:两者传输方式都是字节传输,两者与IO流联系的比较紧密

import java.io.InputStream;import java.io.OutputStream;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.ServerSocket;import java.net.Socket;public class Test {public static void main(String[] args) throws Exception{// TODO Auto-generated method stub//TCP是面向连接的协议,需要校验,可靠的连接,效率慢//TCP传输类似于打电话//Client客户端,创建连接,连接远方绑定IP指定端口Socket socket=new Socket("127.0.0.1",10086);InputStream isS= socket.getInputStream();OutputStream osS = socket.getOutputStream();//Server服务端  绑定接口,开启服务,接受传过来的文件数据ServerSocket ss=new ServerSocket(10086);Socket accept = ss.accept();InputStream isC = accept.getInputStream();OutputStream osC= accept.getOutputStream();//TCP是面向非连接的数据报协议,不需要校验,不可靠的连接,效率快//TCP传输类似于寄快递//Client客户端,创建连接,连接远方绑定IP指定端口//绑定端口,开启服务,接受传过来的文件数据DatagramSocket socketU=new DatagramSocket(10010);byte[] arr=new byte[1024];DatagramPacket packet_receive=new DatagramPacket(arr,1024);String eff=new String(arr, 0 ,packet_receive.getLength());socketU.receive(packet_receive);//Server服务端 绑定接口,开启服务,连接远方地址 DatagramSocket socketC=new DatagramSocket(10086);byte[] b="".getBytes();//连接远方地址 ,通过特定端口,连接远方地址 DatagramPacket packet_send=new DatagramPacket(b, b.length, InetAddress.getByName("127.0.0.1"), 10010);socketC.send(packet_send);}}


原创粉丝点击