博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
udp,tcp对于socket的写法
阅读量:6295 次
发布时间:2019-06-22

本文共 2317 字,大约阅读时间需要 7 分钟。

1.udp的简述

UDP协议提供的服务不同于TCP协议的端到端服务,它是面向非连接的,属不可靠协议,UDP套接字在使用前不需要进行连接。

2.客户端代码,

DatagramSocket ds=new DatagramSocket(1086);                                                                                    byte[] bys = new byte[1024];    int len = bys.length;    DatagramPacket dp = new DatagramPacket(bys, len);    ds.receive(dp);    byte[] by = dp.getData();    int length = dp.getLength();    InetAddress address = dp.getAddress();    String ip = address.getHostAddress();    String s = new String(by, 0, length);    System.out.println(ip + "---" + s);ds.close();

3.服务端代码

DatagramSocket ds=new DatagramSocket();		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));		String line=null;		byte [] bys=line.getBytes();		int num=bys.length;		InetAddress address=InetAddress.getByName("172.19.106.2");		int port=1086;		DatagramPacket dp=new DatagramPacket(bys,num, address,port);		ds.send(dp);				ds.close();

 

2.tcp的简述

CP协议提供面向连接的服务,通过它建立的是可靠地连接。

客户端

//1.创建对象        ServerSocket sk=new ServerSocket(11111);        //2.监听        Socket s=sk.accept();        //打包数据        BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream()));            BufferedReader bw=new BufferedReader(new InputStreamReader(System.in));        OutputStream os=s.getOutputStream();        String line=null;        while((line=br.readLine())!=null){            System.out.println("Client \t"+line);                                os.write(bw.readLine().getBytes());        }                    //释放资源        s.close();        //sk.close();

服务端

Socket sk=new Socket("192.168.60.218",11111);        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));        BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(sk.getOutputStream()));        String line=null;        while((line=br.readLine())!=null){                        bw.write(line);            bw.newLine();            bw.flush();                        InputStream is=sk.getInputStream();                        byte [] by=new byte[1024];            int num=is.read(by);            String h=new String(by, 0, num);            System.out.println("Service:\t"+h);        }                                //br.close();            //bw.close();            sk.close();

后面还有呢,,,

转载于:https://www.cnblogs.com/s122/p/8686631.html

你可能感兴趣的文章
Spring(24)——自定义BeanDefinitionRegistryPostProcessor
查看>>
AngularJs 键盘事件和鼠标事件
查看>>
DC学院数据分析学习笔记(二):爬虫需要的HTML
查看>>
UWA平台新增【UI模块】和【粒子系统】检测功能!
查看>>
Oracle Study之--Oracle等待事件(2)
查看>>
Android开发者指南(15) —— Managing Virtual Devices
查看>>
查找、替换与定位
查看>>
解决莫名其妙出现connection closed的错误
查看>>
Linux多线程实践(3) --线程属性
查看>>
Catalyst3550交换机配置三层接口
查看>>
Elixir语言
查看>>
Java Calendar 类的时间操作
查看>>
esxi所连交换机划vlan导致vm不能通讯
查看>>
关于CE端口线路整改的建议
查看>>
如何禁止使用本地administrator进行共享连接
查看>>
用python解析html[SGMLParser]
查看>>
hive执行流程(3)-Driver类分析1Driver类整体流程
查看>>
Android开发学习笔记:对话框浅析
查看>>
Ajax学习-Ajax简介
查看>>
下载备忘:甘特图实现的代码
查看>>