怎么进行java的socket开发
时间: 2023-12-09 14:25:07 浏览: 35
Java Socket编程主要有以下步骤:
1. 创建ServerSocket对象或Socket对象,指定IP地址和端口号;
2. 调用ServerSocket对象的accept()方法等待客户端连接,或者调用Socket对象的connect()方法连接服务器;
3. 通过输入输出流进行数据的读写操作;
4. 关闭Socket或ServerSocket对象,释放资源。
以下是一个简单的Java Socket客户端示例代码:
```
import java.net.*;
import java.io.*;
public class SocketClient {
public static void main(String[] args) {
try {
Socket socket = new Socket("localhost", 8888);
// 获取输出流
OutputStream outputStream = socket.getOutputStream();
// 写入数据
outputStream.write("Hello, Server!".getBytes());
// 刷新缓冲区
outputStream.flush();
// 获取输入流
InputStream inputStream = socket.getInputStream();
// 读取数据
byte[] buffer = new byte[1024];
int len = inputStream.read(buffer);
String msg = new String(buffer, 0, len);
System.out.println("Server: " + msg);
// 关闭流和Socket
inputStream.close();
outputStream.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
以下是一个简单的Java Socket服务器端示例代码:
```
import java.net.*;
import java.io.*;
public class SocketServer {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("Server started...");
while (true) {
Socket socket = serverSocket.accept();
System.out.println("Client connected: " + socket.getInetAddress().getHostAddress());
// 获取输入流
InputStream inputStream = socket.getInputStream();
// 读取数据
byte[] buffer = new byte[1024];
int len = inputStream.read(buffer);
String msg = new String(buffer, 0, len);
System.out.println("Client: " + msg);
// 获取输出流
OutputStream outputStream = socket.getOutputStream();
// 写入数据
outputStream.write("Hello, Client!".getBytes());
// 刷新缓冲区
outputStream.flush();
// 关闭流和Socket
inputStream.close();
outputStream.close();
socket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这两个示例代码可以相互通信,可以在本地运行,也可以在不同的机器上运行。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)