java socket编程例子
- 格式:doc
- 大小:14.36 KB
- 文档页数:6
- 1 - java socket编程例子
JavaSocket编程是当今Java语言分布式应用编程中不可或缺的一部分。通过它,开发者可以编写自己的网络应用程序,使用TCP/IP协议构建客户/服务器应用程序。
在本文中,我们将介绍如何通过Java Socket编程构建一个简单的客户/服务器应用程序,并讨论编程步骤及相关的详细信息。
Socket基础知识
Socket是网络通信的一种基础抽象,它包含了通信活动所需的实体或对象。它允许客户/服务器应用程序在两端打开通信链路,并通过它进行双向的数据传输。
Socket支持的API受到操作系统的支持。它的实现依赖于与操作系统有关的底层网络API,例如BSD sockets for UNIX-based
systems和Winsock for Windows。
Java Socket编程
Java语言本身提供了对Socket编程实现的支持,用户不必关心底层的实现细节及协议。Socket编程也包括实现客户端和服务器端应用程序的所有重要操作,从初始化到终止。
Java Socket编程提供了一种可以在网络中连接客户端和服务器端的方法。它可以实现远程对象访问(RMI)、网络访问服务(webservices)等多种功能。
编写程序
本节将介绍如何使用Java Socket编程来实现客户端/服务器应 - 2 - 用程序。我们将分别介绍客户端和服务器端程序。
客户端程序
客户端使用Java Socket API中的Socket类,通过创建一个Socket对象,来向服务器发起连接。
客户端代码:
import .Socket;
public class MyClient {
public static void main(String[] args) {
try {
//建Socket对象,向服务器发起连接
Socket socket = new Socket(localhost 5000);
System.out.println(客户端已连接
} catch (Exception e) {
e.printStackTrace();
}
}
}
上面的代码创建了一个Socket对象,并以localhost为服务器地址,端口号为5000连接到了服务器端。
服务器端程序
服务器使用.ServerSocket类,它表示一个端口,客户端可以连接到该端口。 - 3 - 服务器端代码:
import .ServerSocket;
public class MyServer {
public static void main(String[] args) {
try {
//建一个ServerSocket,并绑定到端口号5000
ServerSocket serverSocket = new ServerSocket(5000);
System.out.println(服务器已启动,正在等待客户端连接...);
} catch (Exception e) {
e.printStackTrace();
}
}
}
上述代码用于创建一个ServerSocket对象,并绑定到端口号5000。服务器端将会等待客户端发起连接请求,一旦客户端连接成功,服务器端就会建立一个Socket对象,用来与客户端进行数据通信。
使用Socket进行通信
在客户端和服务器端建立连接之后,就可以使用它们的Socket对象进行通信了。可以使用Socket提供的InputStream和OutputStream方法来进行数据的发送和接收。
客户端端代码
import .Socket; - 4 - public class MyClient {
public static void main(String[] args) {
try {
//建Socket对象,向服务器发起连接
Socket socket = new Socket(localhost 5000);
//送消息到服务器
OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os);
pw.write(hello server
pw.flush();
// 从服务器端接收消息
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new
InputStreamReader(is));
String info = br.readLine();
Sytem.out.println(服务器说:+info);
} catch (Exception e) {
e.printStackTrace();
}
}
}
服务器端代码 - 5 - import .ServerSocket;
public class MyServer {
public static void main(String[] args) {
try {
//建一个ServerSocket,并绑定到端口号5000
ServerSocket serverSocket = new ServerSocket(5000);
System.out.println(服务器已启动,正在等待客户端连接...);
//待客户端的连接
Socket socket = serverSocket.accept();
//收客户端发送的信息
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new
InputStreamReader(is));
String info = br.readLine();
System.out.println(客户端说:+info);
//客户端回复信息
OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os);
pw.write(hello client
pw.flush();
} catch (Exception e) {
e.printStackTrace(); - 6 - }
}
}
上面的代码实现了客户端向服务器端发送“hello server”,服务器端接收信息并回复“hello client”。
结束
本文介绍了使用Java Socket编程构建客户/服务器应用程序的基本概念及步骤。Socket的实现依赖于系统的底层网络API,Java
Socket编程提供了一种可以在网络中连接客户端和服务器端的方法。客户端使用Socket类发起连接请求,服务端使用ServerSocket类等待客户端连接。一旦连接成功,就可以使用InputStream和OutputStream方法进行双向数据传输。