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方法进行双向数据传输。