问题:用JAVA SOCKET编程,读服务器几个字符,再写入本地显示。
(1)客户端
package com.socket;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
//编写一段Java代码,用JAVA SOCKET编程,读服务器几个字符,再写入本地显示。
public class Client {
public static void main(String[] args) {
Socket clientSocket = null;
InputStreamReader input = null;// 字节流到字符流的桥梁
BufferedReader in = null;
OutputStream output = null;
PrintWriter out = null;
InputStreamReader consoleInput = null;// 字节流到字符流的桥梁
BufferedReader consoleIn = null;
try {
// 创建一个客户端
clientSocket = new Socket("127.0.0.1", 400);
// 获取客户端的读入流并进行包装
input = new InputStreamReader(clientSocket.getInputStream());
in = new BufferedReader(input);
// 获取客户端的输出流并进行包装
output = clientSocket.getOutputStream();
out = new PrintWriter(output, true);// 一定要刷新
// 用户从客户端输入信息(对流进行包装)
consoleInput = new InputStreamReader(System.in);
consoleIn = new BufferedReader(consoleInput);
// 用户从客户端输入信息
String consoleStr = consoleIn.readLine();
// 用户输入exit停止客户端
while (!consoleStr.equals("exit")) {
System.out.println("client:" + consoleStr);
out.println(consoleStr);// 写到服务端
System.out.println("server :"+in.readLine());//从服务器读取信息
consoleStr = consoleIn.readLine();// 用户继续从客户端输入信息
}
// 输入exit时也关闭服务端
out.println("exit");
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭流
if (consoleIn != null) {
try {
consoleIn.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (consoleInput != null) {
try {
consoleInput.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (out != null) {
out.close();
}
if (output != null) {
try {
output.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (input != null) {
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (clientSocket != null) {
try {
clientSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
(2)服务端
package com.socket;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
//客户端
public class Server {
public static void main(String[] args) {
ServerSocket server = null;
Socket clientSocket = null;
InputStreamReader input = null;// 字节流到字符流的桥梁
BufferedReader in = null;
OutputStream output = null;
PrintWriter out = null;
try {
// 创建一个服务端
server = new ServerSocket(400);
// 接收一个客户端
clientSocket = server.accept();
// 获取客户端的读入流并进行包装
input = new InputStreamReader(clientSocket.getInputStream());
in = new BufferedReader(input);
// 获取客户端的输出流并进行包装
output = clientSocket.getOutputStream();
out = new PrintWriter(output, true);// 一定要刷新
// 从客户端输入信息
String str = in.readLine();
//System.out.println(str);
while (!str.equals("exit")) {
out.println(str);// 把从客户端读取的信息返回给客户端
str = in.readLine();// 继续从客户端读取信息
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭流
if (out != null) {
out.close();
}
if (output != null) {
try {
output.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (input != null) {
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (clientSocket != null) {
try {
clientSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (server != null) {
try {
server.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
分享到:
相关推荐
一个简单的Java Socket编程示例包括以下几个步骤: 1. 创建ServerSocket实例并绑定到指定端口。 2. 在Server端的循环中调用accept(),等待客户端连接。 3. 客户端创建Socket实例,调用connect()连接到服务器。 4. ...
Java Socket编程还涉及许多其他关键概念,例如异常处理、线程同步、数据编码解码、超时设置等。在实际应用中,通常需要考虑以下几点: - **异常处理**:在上述示例中,每个可能抛出异常的操作都被捕获并处理,确保...
这样的设计使得开发者在处理Socket通信时只需调用几个简单的API,而无需关心底层的实现细节。 此外,考虑到文件名为"java Socket通信实现",这个工具包可能还包含了关于异常处理、多线程以及网络连接管理的示例。...
### Java CP/IP Socket编程 #### 第1章:简介 计算机网络的发展使得个人电脑不仅可以作为办公工具,还能成为娱乐中心和沟通平台。随着越来越多的人通过互联网进行互动,掌握网络编程技术变得尤为重要。本章旨在为...
在这个"java socket服务端和客户端"的项目中,我们可以探讨以下几个关键知识点: 1. **Socket类和ServerSocket类**: - `Socket`类代表了网络上的一个连接,它用于建立客户端到服务器的连接,并进行数据传输。通过...
在这个"Java网络编程练习的文件"中,我们可以看到几个核心的类和概念,这些都是Java在处理网络交互时的基础。 首先,`Client.java`通常是实现客户端逻辑的类。在Java中,客户端通常使用`Socket`类来建立与服务器的...
Socket编程是计算机网络通信中的重要概念,特别是在Java中,它提供了客户端和服务器间的数据交换机制。SocketConnection和ServerSocketConnection是MIDP(Mobile Information Device Profile)为移动设备实现Socket...
Java Socket 是一种基于TCP/IP协议的网络编程工具,它允许两个网络应用程序之间建立连接并进行双向通信。在Java中,Socket被广泛用于构建客户端-服务器应用程序,如多人聊天室这样的实时交互系统。在这个源代码实例...
在这个简易的Java Socket示例中,我们将会探讨如何创建一个简单的客户端-服务器应用,这将涵盖以下几个核心概念: 1. **Socket**: Java中的Socket类代表了网络上的一个端点,它是两台机器间通信的桥梁。一个Socket...
在Java网络编程中,我们通常利用Socket编程来实现客户端与服务器之间的通信,构建这样的聊天程序涉及到以下几个核心知识点: 1. **Java Socket编程**:Java中的Socket类代表网络上的一个连接端点,ServerSocket类...
在这个"基于Java的socket的聊天系统"中,我们主要会涉及到以下几个关键知识点: 1. **Socket概念**:Socket是网络通信的一种接口,它在应用层与传输层之间提供了一种通信方式。在Java中,`java.net.Socket`类和`...
总结起来,"JAVA100例之实例43 一对简单的服务器和客户端"主要涵盖了以下几个知识点: 1. 使用`ServerSocket`创建服务器并监听特定端口。 2. `ServerSocket.accept()`方法用于接受客户端连接。 3. `Socket`类用于...
在Java中实现Socket通信通常分为以下几个步骤: 1. **服务器端设置**: - 创建一个ServerSocket实例,指定一个端口号,如`new ServerSocket(8080)`。这会使得服务器监听8080端口上的连接请求。 - 使用`...
Java网络编程是计算机科学中的一个重要领域,特别是在分布式系统和服务器端开发中不可或缺。这个实验报告主要涉及了两个关键概念:I/O操作和线程管理,同时包含了一个基本的聊天室代码实现,这为我们提供了理解Java...
在"java socket 监控系统,多服务端,单客户端"的场景中,我们可以深入探讨以下几个关键知识点: 1. **Socket基本概念**: Java Socket是两台机器间进行网络通信的桥梁。它允许一个程序(服务器)在特定端口上监听...
本教程将通过一个简单的聊天程序示例,深入讲解Java与Socket技术的结合应用,特别是TCP协议的使用。对于初学者来说,这是一个理解网络编程概念、熟悉Socket工作原理的好机会。 首先,TCP(Transmission Control ...
1. **Socket编程**:Java中的Socket类是网络编程的基础,它提供了双向通信通道,即客户端与服务器端的数据交换。Socket包括ServerSocket(服务器端)和Socket(客户端)。ServerSocket在指定端口监听连接请求,当有...
在这个"java核心技术编程"的主题中,我们将深入探讨几个关键领域:IO(输入/输出),多线程,反射,以及网络编程。这些概念构成了Java应用开发的基石。 首先,让我们来看看IO。在Java中,IO库提供了一系列类和接口...
* 用Java Socket编程,读服务器几个字符,再写入本地显示。 四、数据库查询 * 用Java实现数据库查询,掌握Java数据库查询的基础知识。 五、异常处理机制 * 使用try、catch和finally语句块来处理异常,掌握Java...
Java 通信编程主要使用 Java SOCKET 编程,读取服务器几个字符,然后写入本地显示。 3. 排序算法 Java 实现一种排序,JAVA 类实现序列化的方法有多种,例如在 COLLECTION 框架中,实现比较要实现什么样的接口? 4...