Java网络编程函数:Socket通信的使用方法
发布时间:2023-06-19 11:53:40
Socket是Java中网络编程中最常用的通信方式,它可以实现客户端和服务端之间的数据传输。下面介绍Java中Socket通信的使用方法。
1. 创建Socket对象
在Java中,需要使用Socket对象来进行网络通信,如下所示:
Socket socket = new Socket(String host, int port);
其中,host为服务端的IP地址,port为服务端的端口号。
2. 创建输入输出流
使用Socket对象的getInputStream()和getOutputStream()方法来创建输入输出流,如下所示:
InputStream is = socket.getInputStream(); OutputStream os = socket.getOutputStream();
3. 发送数据
使用输出流向服务端发送数据,如下所示:
String message = "Hello Server!"; os.write(message.getBytes());
其中,getBytes()方法将字符串转换为字节数组。
4. 接收数据
使用输入流从服务端接收数据,如下所示:
byte[] buffer = new byte[1024]; int length = is.read(buffer); String message = new String(buffer, 0, length);
其中,read()方法将数据读入缓冲区,并返回读入数据的字节数,String()将字节数组转换为字符串。
5. 关闭Socket连接
完成数据传输后,需要关闭Socket连接,如下所示:
socket.close();
完整代码示例:
客户端代码:
import java.io.*;
import java.net.Socket;
public class Client {
public static void main(String[] args) {
Socket socket = null;
try {
// 连接服务端
socket = new Socket("127.0.0.1", 8888);
// 获取输出流
OutputStream os = socket.getOutputStream();
// 发送数据
String message = "Hello Server!";
os.write(message.getBytes());
// 获取输入流
InputStream is = socket.getInputStream();
// 接收数据
byte[] buffer = new byte[1024];
int length = is.read(buffer);
String receiveMessage = new String(buffer, 0, length);
System.out.println("Receive message from server: " + receiveMessage);
// 关闭连接
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
服务端代码:
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
ServerSocket serverSocket = null;
Socket socket = null;
try {
// 创建服务端Socket对象
serverSocket = new ServerSocket(8888);
while (true) {
// 监听客户端连接
socket = serverSocket.accept();
// 获取输入流
InputStream is = socket.getInputStream();
// 接收数据
byte[] buffer = new byte[1024];
int length = is.read(buffer);
String message = new String(buffer, 0, length);
System.out.println("Receive message from client: " + message);
// 获取输出流
OutputStream os = socket.getOutputStream();
// 发送数据
String responseMessage = "Hello Client!";
os.write(responseMessage.getBytes());
// 关闭连接
socket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
以上就是Java中Socket通信的使用方法,使用Socket可以实现客户端和服务端之间的数据传输。
