一UDP的练习
需求:通过udp传输方式,将一段文字数据发送出去。
步骤:,
1.1,建立udpsocket服务。
DatagramSocket ds=new DatagramSocket();
1.2,提供数据,并将数据封装到数据包中
byte[] data="wolaile".getBytes();
DatagramPacket dp=new DatagramPacket(data,data.length,
InetAddress.getByName("192,168.1.1"),10000);
1.3,将数据发送出去。
ds.send(dp);
4,关闭资源(关闭网卡)
ds.close();
2,定义一个运用程序用来接收udp
2.1定义UDPsocket服务:
DatagramSocket ds=new DatagramSocket(10000);
2.2定义一个数据包,用于存储数据。
byte[] buf=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf,buf.length);
2.3通过socket服务接收数据,并存入数据包中。
ds.receive(dp);
2.4通过数据包对象特殊功能获取数据
String ip=dp.getAddress().getHostAddress();
String data=new String(dp.getData(),0,dp.getLength());
2.5关闭资源。
二、TCP的练习
1,发送端:
1.1,建立socket服务:
Socket s=new Socket("192.168.1.1",1111);
1.2,为了发送数据应该获取socket中的输出流:
OutputStream out=s.getOutputStream();
1.3,关闭资源。
s.close();
2,接收端:没有输入输出流。必须先开服务端,因为面向有链接
2.1建立服务端的socket服务。
ServerSocket ss=new ServerSocket(1111);
2.2获取链接到的客户端对象。
Socket s=ss.accept();
2.3如果客户端发过来数据那么服务端要使用客户端对应的读取流。InputStream in=s.getInputStream();
byte []buf=new byte[1024];
int len=in.read(buf);
System.out.println(new String(buf,0,len));
2.4关闭客户端:
s.close();
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |