UDP/TCP基本连接代码实现(未完)

简单记录下UDP/TCP基本连接代码,方便后面测试需要时直接使用

区别

简单说明下二者的区别

tcp面向连接,需要先建立连接,一对一传输数据,数据发送稳定,传输数据量也比udp大

udp不需要建立连接,为广播发送数据,数据发送不稳定,无法确保接收端成功收到数据

基本连接代码

udp基本连接代码

接收端

1.先建立udp的socket,明确那个端口(对应发送端设置的端口)

DatagramSocket ds = new DatagramSocket(10000);

2.定义数据包

byte[] bu = new byte[1024];

DatagramPacket dg = new DatagramPacket(bu,bu.length);

3.接收数据。先将数据存储到数据包中

ds.receive(dg);

4.通过数据包对象获取数据内容。包括ip、端口、发送的内容

String ip = dg.getAddress().getHostAddress();

int port = dg.getPort();

String text = new String(dg.getData(),0,dg.getLength());

System.out.println("内容:"+text+";ip:"+ip+";端口:"+port);

5.关闭流

ds.close();

发送端

1.先建立udp的socket

DatagramSocket ds = new DatagramSocket();

2.将数据封装到数据包中,数据包对象是datagramPacket

byte[] buf = "upd发送成功!".getBytes();

DatagramPacket dg = new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.2"),10000);

3.使用socket的send方法,将数据包发送出去

ds.send(dg);

4.关闭流

ds.close();

tcp基本连接代码

客户端

1.创建Socket对象,并连接服务端

Socket socket = new Socket("192.168.1.2",1211);

* 2.根据socket对象创建输出流对象,写入数据

OutputStream out = socket.getOutputStream();

out.write("Tcp数据发送成功!".getBytes());

* 3.关闭连接

socket.close();

服务端

1.创建ServiceSocket对象,设置需要监听的端口

ServerSocket ss = new ServerSocket(1211);

* 2.从ServerSocket对象中获取到客户端Socket对象

Socket socket = ss.accept();

* 3.根据客户端Socket对象创建对应的输入流对象

InputStream in = socket.getInputStream();

* 4.再把输入对象中的内容读取出来,放到byte数组中

byte[] bt = new byte[1024];

int len = in.read(bt);

String text = new String(bt,0,len);

5.关闭连接和流

socket.close();

in.close();

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容