Java函数库实现网络通信:Socket编程实例
发布时间:2023-06-30 00:32:13
Socket是一个用于网络通信的标准编程接口,Java提供了Socket类来实现网络通信。通过Socket编程,可以实现客户端与服务器之间的数据传输。下面是一个Socket编程的实例。
首先,需要创建一个服务器端程序来监听指定的端口,等待客户端的连接请求。服务器端代码如下:
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
try {
// 创建服务器端Socket,指定端口号
ServerSocket serverSocket = new ServerSocket(8888);
// 等待客户端的连接请求
System.out.println("等待客户端的连接请求...");
Socket socket = serverSocket.accept();
System.out.println("客户端连接成功!");
// 关闭服务器端Socket
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
上述代码首先创建了一个ServerSocket对象,指定端口号为8888。然后调用accept()方法等待客户端的连接请求,accept()方法是一个阻塞式方法,直到有客户端发起连接请求时才会继续执行。当客户端连接成功后,即可进行后续操作。
接下来,可以编写一个客户端程序来连接服务器并发送数据。客户端代码如下:
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
public class Client {
public static void main(String[] args) {
try {
// 创建客户端Socket,指定服务器IP地址和端口号
Socket socket = new Socket("localhost", 8888);
// 获取输出流,向服务器发送数据
OutputStream outputStream = socket.getOutputStream();
outputStream.write("Hello Server".getBytes());
// 关闭客户端Socket
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
上述代码首先创建了一个Socket对象,指定服务器的IP地址为"localhost",端口号为8888。接着获取输出流,通过输出流向服务器发送数据。最后关闭客户端的Socket连接。
可以在服务器端的程序中接收并处理客户端发送的数据。下面的代码将在服务器端接收客户端发送的数据并打印出来:
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("等待客户端的连接请求...");
Socket socket = serverSocket.accept();
System.out.println("客户端连接成功!");
// 接收客户端发送的数据
InputStream inputStream = socket.getInputStream();
byte[] buffer = new byte[1024];
int length = inputStream.read(buffer);
String message = new String(buffer, 0, length);
System.out.println("收到客户端的消息:" + message);
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
上述代码在服务器端获取输入流,通过输入流读取来自客户端的数据。然后将数据转换为字符串并打印出来。
通过上述的Socket编程实例,可以实现客户端与服务器之间的简单数据传输。Socket编程是网络通信中常用的技术之一,可以用于实现各类网络应用。
