Java 网络编程 简单Socket(UDP)

来源:互联网 发布:js alert 编辑:程序博客网 时间:2024/05/21 16:25
Java网络编程,简单Socket

Java的Socket底层是io流,下面就做一个简单的Socket连接发送一句话;

第一步:创建发送端的Socket,代码如下


package com.zhengyanfeng.socket;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.SocketException;public class SendSocketDemo {public static void main(String[] args) throws Exception {//我们将要发送的数据字符串String str = "你好,这是我的第一个Java套接字";//创建sock对象,相当于创建码头;此处不指定端口,即随机端口DatagramSocket socket = new DatagramSocket();//创建packet对象,相当于创建集装箱;参数1:数据字节数组;参数2:数据字节数组长度;参数3:socket接收端主机IP;参数4:socket接收端端口DatagramPacket packet = new DatagramPacket(str.getBytes(), str.getBytes().length, InetAddress.getByName("127.0.0.1"), 6666);//发送数据socket.send(packet);//关闭socketsocket.close();}}

第二步:创建接收端的Socket,代码如下

package com.zhengyanfeng.socket;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.SocketException;public class ReceiveSocketDemo {public static void main(String[] args) throws Exception {//创建接收端socket,指定接收端口,和发送端指定的端口相同,相当于创建接收码头DatagramSocket socket = new DatagramSocket(6666);//创建接收端packet,第一个参数:一次接收数据字节数组,第二个参数:字节数组长度,相当于创建接收集装箱DatagramPacket packet = new DatagramPacket(new byte[1024], 1024);//接收数据socket.receive(packet);//获取数据byte[] arr = packet.getData();int len = packet.getLength();System.out.println(new String(arr,0,len));socket.close();}}

第三步:在中终端里运行Socket接收端编译后的.class文件,这一步执行后没有什么反应,但是留着这个终端命令窗口,重新打开一个终端命令窗口,然后执行第四步。运行接收端的代码如下图:



第四步:在新打开的终端命令里运行Socket发送端编译后的.class文件,如下图



此时我们在接收端就可以看到我们发送的消息,如下图:



原创粉丝点击