Java : java基础(5) Socket网络编程
使用 DatagramSocket 创建一个 UDP协议的Socket, 用DatagramPacket创建一个数据包,可以指定ip和端口号以及包的数据,用socket.send()可以发送这个数据包,代码实例:
String str = "这是数据"; DatagramSocket socket = new DatagramSocket(); DatagramPacket packet = new DatagramPacket(str.getBytes(), str.getBytes().length, InetAddress.getByName("127.0.0.1"), 6666);// 指定接收端口 socket.send(packet); socket.close();
接收数据示例: 使用receive()方法接收数据包, getData() 获取字节数据.
DatagramSocket socket = new DatagramSocket(6666);// 指定本地端口 DatagramPacket packet = new DatagramPacket(new byte[1024], 1024); socket.receive(packet); byte[] arr = packet.getData(); System.out.println(new String(arr)); socket.close();
TCP协议的socket直接用 Socket类创建,例如: 可以直接用 getInputStream()获取输入流接收数据, 用getOutputStream()输出流发送
Socket socket = new Socket("127.0.0.1", 6666); OutputStream os = socket.getOutputStream(); InputStream in = socket.getInputStream();
服务端需要使用 ServerSocket类来创建,使用accept()方法来获取一个请求的socket,剩下的操作也是一样.如:
ServerSocket serverSocket = new ServerSocket(6666); Socket socket = serverSocket.accept(); InputStream is = socket.getInputStream(); OutputStream os = socket.getOutputStream();