Java Socket编程是一种基于TCP/IP协议的网络通信方式,它允许Java程序通过网络进行数据交换。Socket是网络通信的端点,一个Socket实例代表一个连接的两个端点之间的通信链路。
Java Socket编程主要包括以下几个方面:
Socket类和ServerSocket类:
Socket类:用于客户端,表示与服务器端的连接。ServerSocket类:用于服务器端,监听客户端的连接请求。建立连接:
new Socket(String host, int port)方法连接到服务器。new ServerSocket(int port)方法监听指定端口,等待客户端连接。数据传输:
Socket对象的输入流和输出流进行数据的读写。InputStream和OutputStream用于字节流传输。Reader和Writer用于字符流传输。关闭连接:
异常处理:
IOException,需要进行适当的异常处理。多线程:
下面是一个简单的Java Socket编程示例:
服务器端代码:
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("服务器已启动,等待客户端连接...");
Socket socket = serverSocket.accept();
System.out.println("客户端已连接");
InputStream inputStream = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String message = reader.readLine();
System.out.println("收到客户端消息:" + message);
OutputStream outputStream = socket.getOutputStream();
PrintWriter writer = new PrintWriter(outputStream, true);
writer.println("服务器已收到消息:" + message);
socket.close();
serverSocket.close();
}
}
客户端代码:
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("localhost", 8888);
System.out.println("已连接到服务器");
OutputStream outputStream = socket.getOutputStream();
PrintWriter writer = new PrintWriter(outputStream, true);
writer.println("你好,服务器!");
InputStream inputStream = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String message = reader.readLine();
System.out.println("收到服务器消息:" + message);
socket.close();
}
}
在这个示例中,服务器监听8888端口,等待客户端连接。客户端连接到服务器后,发送一条消息并接收服务器的响应。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。