Java网络编程:Socket通信实例分析

原创 叁歲伎倆 2024-11-08 18:15 35阅读 0赞

Java网络编程中,Socket通信是一种常见的网络通信方式。Socket是网络通信的端点,它允许程序之间进行双向通信。Java提供了java.net包来支持网络编程,其中Socket类用于创建客户端,而ServerSocket类用于创建服务器端。

下面是一个简单的Java Socket通信实例,包括服务器端和客户端的代码。

服务器端代码(Server.java)

```javaimport java.io.;
import java.net.
;

public class Server {
public static void main(String[] args) {
try {
// 创建服务器端的ServerSocket,监听端口号1234ServerSocket serverSocket = new ServerSocket(1234);
System.out.println(“Server is running and waiting for client connection…”);

//服务器无限循环,等待客户端连接 while (true) {
//等待接受客户端的连接,此方法会阻塞,直到一个连接建立Socket socket = serverSocket.accept();
System.out.println(“Client connected.”);

// 获取输入流,用于接收客户端发送的数据 BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
// 获取输出流,用于向客户端发送数据 PrintWriter out = new PrintWriter(socket.getOutputStream(), true);

//读取客户端发送的消息String inputLine = in.readLine();
System.out.println(“Client says: “ + inputLine);

//向客户端发送消息out.println(“Hello, “ + inputLine);

// 关闭连接 socket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```###客户端代码(Client.java)

```javaimport java.io.;
import java.net.
;

public class Client {
public static void main(String[] args) {
try {
// 创建客户端的Socket,连接到服务器的IP地址和端口号Socket socket = new Socket(“127.0.0.1”,1234);
System.out.println(“Connected to server.”);

// 获取输出流,用于向服务器发送数据 PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
// 获取输入流,用于接收服务器发送的数据 BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

//向服务器发送消息out.println(“Hello Server!”);

//读取服务器的响应String fromServer = in.readLine();
System.out.println(“Server says: “ + fromServer);

// 关闭连接 socket.close();
} catch (UnknownHostException e) {
System.err.println(“Don’t know about host “ + “127.0.0.1”);
e.printStackTrace();
} catch (IOException e) {
System.err.println(“Couldn’t get I/O for the connection to “ + “127.0.0.1”);
e.printStackTrace();
}
}
}
```###运行步骤1.首先运行服务器端代码(Server.java),它会在指定端口上监听客户端的连接。
2.然后运行客户端代码(Client.java),它会连接到服务器并发送消息。
3.服务器接收到消息后,会打印出来并回复客户端。
4.客户端接收到服务器的回复后,会打印出来。

这个例子展示了最基本的Socket通信流程。在实际应用中,你可能需要处理更复杂的数据传输、错误处理、多线程等高级特性。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,35人围观)

还没有评论,来说两句吧...

相关阅读