`
xiangxuehai_jiaer
  • 浏览: 91870 次
  • 性别: Icon_minigender_2
  • 来自: 西安
社区版块
存档分类
最新评论

用JAVA SOCKET编程,读服务器几个字符,再写入本地显示

 
阅读更多

问题:用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编程

    一个简单的Java Socket编程示例包括以下几个步骤: 1. 创建ServerSocket实例并绑定到指定端口。 2. 在Server端的循环中调用accept(),等待客户端连接。 3. 客户端创建Socket实例,调用connect()连接到服务器。 4. ...

    Java Socket网络编程

    Java Socket编程还涉及许多其他关键概念,例如异常处理、线程同步、数据编码解码、超时设置等。在实际应用中,通常需要考虑以下几点: - **异常处理**:在上述示例中,每个可能抛出异常的操作都被捕获并处理,确保...

    java Socket通信实现.rar

    这样的设计使得开发者在处理Socket通信时只需调用几个简单的API,而无需关心底层的实现细节。 此外,考虑到文件名为"java Socket通信实现",这个工具包可能还包含了关于异常处理、多线程以及网络连接管理的示例。...

    Java CP/IP Socket编程

    ### Java CP/IP Socket编程 #### 第1章:简介 计算机网络的发展使得个人电脑不仅可以作为办公工具,还能成为娱乐中心和沟通平台。随着越来越多的人通过互联网进行互动,掌握网络编程技术变得尤为重要。本章旨在为...

    java socket服务端和客户端

    在这个"java socket服务端和客户端"的项目中,我们可以探讨以下几个关键知识点: 1. **Socket类和ServerSocket类**: - `Socket`类代表了网络上的一个连接,它用于建立客户端到服务器的连接,并进行数据传输。通过...

    Java网络编程练习的文件

    在这个"Java网络编程练习的文件"中,我们可以看到几个核心的类和概念,这些都是Java在处理网络交互时的基础。 首先,`Client.java`通常是实现客户端逻辑的类。在Java中,客户端通常使用`Socket`类来建立与服务器的...

    Socket编程(实现了对客户端和服务器交互)

    Socket编程是计算机网络通信中的重要概念,特别是在Java中,它提供了客户端和服务器间的数据交换机制。SocketConnection和ServerSocketConnection是MIDP(Mobile Information Device Profile)为移动设备实现Socket...

    java Socket实现的多人聊天 源代码

    Java Socket 是一种基于TCP/IP协议的网络编程工具,它允许两个网络应用程序之间建立连接并进行双向通信。在Java中,Socket被广泛用于构建客户端-服务器应用程序,如多人聊天室这样的实时交互系统。在这个源代码实例...

    java 简易的socket

    在这个简易的Java Socket示例中,我们将会探讨如何创建一个简单的客户端-服务器应用,这将涵盖以下几个核心概念: 1. **Socket**: Java中的Socket类代表了网络上的一个端点,它是两台机器间通信的桥梁。一个Socket...

    (java网络编程)聊天程序

    在Java网络编程中,我们通常利用Socket编程来实现客户端与服务器之间的通信,构建这样的聊天程序涉及到以下几个核心知识点: 1. **Java Socket编程**:Java中的Socket类代表网络上的一个连接端点,ServerSocket类...

    基于java的socket的聊天系统

    在这个"基于Java的socket的聊天系统"中,我们主要会涉及到以下几个关键知识点: 1. **Socket概念**:Socket是网络通信的一种接口,它在应用层与传输层之间提供了一种通信方式。在Java中,`java.net.Socket`类和`...

    JAVA100例之实例43 一对简单的服务器和客户端

    总结起来,"JAVA100例之实例43 一对简单的服务器和客户端"主要涵盖了以下几个知识点: 1. 使用`ServerSocket`创建服务器并监听特定端口。 2. `ServerSocket.accept()`方法用于接受客户端连接。 3. `Socket`类用于...

    用java实现socket通信(单交互)

    在Java中实现Socket通信通常分为以下几个步骤: 1. **服务器端设置**: - 创建一个ServerSocket实例,指定一个端口号,如`new ServerSocket(8080)`。这会使得服务器监听8080端口上的连接请求。 - 使用`...

    Java 网络编程实验报告 含实验总结

    Java网络编程是计算机科学中的一个重要领域,特别是在分布式系统和服务器端开发中不可或缺。这个实验报告主要涉及了两个关键概念:I/O操作和线程管理,同时包含了一个基本的聊天室代码实现,这为我们提供了理解Java...

    java socket

    在"java socket 监控系统,多服务端,单客户端"的场景中,我们可以深入探讨以下几个关键知识点: 1. **Socket基本概念**: Java Socket是两台机器间进行网络通信的桥梁。它允许一个程序(服务器)在特定端口上监听...

    简单的聊天程序java和socket的应用

    本教程将通过一个简单的聊天程序示例,深入讲解Java与Socket技术的结合应用,特别是TCP协议的使用。对于初学者来说,这是一个理解网络编程概念、熟悉Socket工作原理的好机会。 首先,TCP(Transmission Control ...

    Java网络编程示例

    1. **Socket编程**:Java中的Socket类是网络编程的基础,它提供了双向通信通道,即客户端与服务器端的数据交换。Socket包括ServerSocket(服务器端)和Socket(客户端)。ServerSocket在指定端口监听连接请求,当有...

    java核心技术编程

    在这个"java核心技术编程"的主题中,我们将深入探讨几个关键领域:IO(输入/输出),多线程,反射,以及网络编程。这些概念构成了Java应用开发的基石。 首先,让我们来看看IO。在Java中,IO库提供了一系列类和接口...

    java面试笔试题大汇总

    * 用Java Socket编程,读服务器几个字符,再写入本地显示。 四、数据库查询 * 用Java实现数据库查询,掌握Java数据库查询的基础知识。 五、异常处理机制 * 使用try、catch和finally语句块来处理异常,掌握Java...

    java面试题.doc

    Java 通信编程主要使用 Java SOCKET 编程,读取服务器几个字符,然后写入本地显示。 3. 排序算法 Java 实现一种排序,JAVA 类实现序列化的方法有多种,例如在 COLLECTION 框架中,实现比较要实现什么样的接口? 4...

Global site tag (gtag.js) - Google Analytics