java socket
时间: 2023-10-23 12:20:06 浏览: 85
Java中的Socket类是用于实现网络套接字的基本类,可以通过它进行网络通信。Socket类提供了一种机制,可以通过网络连接两个应用程序,一个应用程序作为服务端,另一个应用程序作为客户端。Java中提供了两种类型的Socket:ServerSocket和Socket。
ServerSocket类用于创建服务器套接字,它等待客户端连接,一旦连接建立,就会创建一个Socket对象,用于与客户端进行通信。ServerSocket类提供了accept()方法,用于接收客户端的连接请求。
Socket类用于创建客户端套接字,它可以连接到服务器套接字,并与服务器进行通信。Socket类提供了一系列的方法,如connect()、getInputStream()和getOutputStream()等,用于与服务器进行通信。
以下是一个简单的Java Socket示例,用于实现客户端和服务器之间的通信:
客户端代码:
```java
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) throws IOException {
String hostname = "localhost";
int port = 8080;
try (Socket socket = new Socket(hostname, port)) {
OutputStream output = socket.getOutputStream();
PrintWriter writer = new PrintWriter(output, true);
writer.println("Hello, server");
InputStream input = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
String response = reader.readLine();
System.out.println(response);
} catch (UnknownHostException ex) {
System.out.println("Server not found: " + ex.getMessage());
} catch (IOException ex) {
System.out.println("I/O error: " + ex.getMessage());
}
}
}
```
服务器端代码:
```java
import java.net.*;
import java.io.*;
public class Server {
public static void main(String[] args) throws IOException {
int portNumber = 8080;
try (ServerSocket serverSocket = new ServerSocket(portNumber)) {
while (true) {
try (Socket clientSocket = serverSocket.accept()) {
InputStream input = clientSocket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
OutputStream output = clientSocket.getOutputStream();
PrintWriter writer = new PrintWriter(output, true);
String request = reader.readLine();
if (request.equals("Hello, server")) {
writer.println("Hello, client");
} else {
writer.println("Unknown request");
}
} catch (IOException ex) {
System.out.println("I/O error: " + ex.getMessage());
}
}
} catch (IOException ex) {
System.out.println("I/O error: " + ex.getMessage());
}
}
}
```
这个示例实现了一个简单的客户端和服务器之间的通信,客户端发送一条消息到服务器,服务器收到消息后返回一条响应消息。
阅读全文