服务器端:
package com.bijian.test; import java.io.*; import java.net.*; public class EchoServer { private int port = 8000; private ServerSocket serverSocket; public EchoServer() throws IOException { serverSocket = new ServerSocket(port); System.out.println("服务器启动"); } public String echo(String msg) { return "echo:" + msg; } public PrintWriter getWriter(Socket socket) throws IOException { OutputStream socketOut = socket.getOutputStream(); return new PrintWriter(socketOut, true); } public BufferedReader getReader(Socket socket) throws IOException { InputStream socketIn = socket.getInputStream(); return new BufferedReader(new InputStreamReader(socketIn)); } public void service() { while (true) { Socket socket = null; try { socket = serverSocket.accept();// 等待客户端连接 System.out.println("New aonnection accepted" + socket.getInetAddress() + ":" + socket.getPort()); BufferedReader br = getReader(socket); PrintWriter pw = getWriter(socket); String msg = null; while ((msg = br.readLine()) != null) { System.out.println(msg); pw.println(echo(msg)); pw.flush(); if (msg.equals("bye")) { break; } } } catch (IOException e) { e.printStackTrace(); } finally { try { if (socket != null) socket.close(); } catch (IOException e) { e.printStackTrace(); } } } } public static void main(String[] args) throws IOException { new EchoServer().service(); } }
客户端:
package com.bijian.test; import java.net.*; import java.io.*; public class EchoClient { private String host = "localhost"; private int port = 8000; private Socket socket; public EchoClient() throws IOException { socket = new Socket(host, port); } private PrintWriter getWriter(Socket socket) throws IOException { OutputStream socketOut = socket.getOutputStream(); return new PrintWriter(socketOut, true); } private BufferedReader getReader(Socket socket) throws IOException { InputStream socketIn = socket.getInputStream(); return new BufferedReader(new InputStreamReader(socketIn)); } public void talk() throws IOException { try { BufferedReader br = getReader(socket); PrintWriter pw = getWriter(socket); BufferedReader localReader = new BufferedReader(new InputStreamReader(System.in)); String msg = null; while ((msg = localReader.readLine()) != null) { pw.println(msg); pw.flush(); System.out.println(br.readLine()); if (msg.equals("bye")) { break; } } } catch (IOException e) { e.printStackTrace(); } finally { try { socket.close(); } catch (IOException e) { e.printStackTrace(); } } } public static void main(String[] args) throws IOException { new EchoClient().talk(); } }
运行结果:
客户端:
服务端:
参考文章:http://www.cnblogs.com/mbigger/archive/2012/08/08/2628154.html
相关推荐
本主题聚焦于使用Java进行基于TCP的Socket编程,通过`File_client.java`和`File_server.java`两个文件来实现服务器和客户端之间的数据交换。 首先,TCP Socket编程的基础是Java的`java.net.Socket`和`java.net....
以上就是Java Socket编程中服务器和客户端交互的基本步骤和涉及的关键知识点。实际应用中,可能还需要考虑到网络延迟、数据完整性、安全性等因素,并进行相应的优化和处理。在TestSocket项目中,我们可以找到具体的...
首先,我们要知道Java的`ServerSocket`类代表服务器端的一个监听套接字,它用于等待客户端的连接请求。创建`ServerSocket`对象时,通常需要指定一个端口号,这个端口号是服务器应用程序监听连接的入口。例如: ```...
Java Socket编程是网络编程中的重要组成部分,主要用于在两台计算机之间建立双向通信通道,实现数据的交换。在Java中,Socket类和ServerSocket类是进行网络通信的核心工具,它们提供了客户端与服务器之间的连接和...
1. **服务器端(Server)**:服务器端程序通常会创建一个`ServerSocket`实例来监听特定端口的连接请求。当有新的客户端连接时,服务器会为每个客户端创建一个新的线程来处理与其的通信,这样可以同时处理多个客户端...
Java Socket编程服务器响应客户端实例代码是指使用Java语言编写的Socket编程服务器端和客户端实例代码,实现了服务器端响应客户端的请求和处理客户端提交的信息。 一、Java Socket编程服务器响应客户端实例代码的...
通过本文,读者可以了解Java中的Socket编程,掌握客户端和服务器端的实现方法,从而实现网络通信。 相关知识点 * Java中的Socket * Socket的基本概念 * 客户端和服务器端的实现 * 数据的发送和接收 * Socket的连接...
一旦连接成功,客户端和服务器端都将拥有各自的`Socket`实例,可以进行数据的读写。 数据的传输通过`Socket`的输入输出流完成。每个`Socket`对象都有一个输入流(`InputStream`)和一个输出流(`OutputStream`)。...
在本文中,我们将深入探讨如何在Android平台上实现服务器端和客户端的Socket通讯,以及如何创建9999端口进行数据交互。 首先,我们需要理解Socket的基本概念。Socket在计算机网络中是一种进程间通信机制,它提供了...
在服务器端,我们可以创建一个`System.Net.Sockets.Socket`对象,设置其监听的IP地址和端口号,然后调用`Listen()`方法开始监听客户端的连接请求。为了处理多个并发连接,通常会使用多线程或异步编程模型。在接收到...
可能包含一个简单的客户端,它连接到本地服务器并发送一些数据,然后接收响应。也可能是服务器端代码,监听特定端口,接受客户端连接,并对每个连接创建新线程来处理请求。 学习这些Java Socket编程实例,有助于...
本教程将深入探讨Android Socket编程的基本概念、客户端与服务器端的实现以及相关源码解析。 一、Socket基本概念 Socket,也被称为套接字,是网络通信中的一个重要接口,它为两台设备提供双向通信的通道。在Android...
下面是一个简单的Java Socket客户端示例,用于连接到一个聊天服务器: ```java import java.io.*; import java.net.*; public class ChatClient { public static void main(String[] args) { try (Socket socket...
在Java编程语言中,Socket是实现TCP(传输控制协议)通信的基础组件。TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,它为应用...在实际开发中,了解和熟练掌握Socket编程对于构建网络应用程序至关重要。
以下是一个简单的Socket服务器端的步骤: 1. **导入必要的库**:`java.net.ServerSocket` 和 `java.net.Socket` 是进行Socket编程的关键类,需要导入它们。 2. **创建ServerSocket实例**:使用`ServerSocket(int ...
在本项目中,我们有一个服务器端(ServerSocket)和多个客户端(Socket),它们通过TCP/IP协议进行通信,实现即时消息的交换。 首先,让我们了解一下Java中的Socket。Socket是Java提供的用于网络通信的接口,它基于...
Java Socket编程是网络编程的基础,它提供了在两个应用程序之间建立通信连接的能力。在这个场景中,我们讨论的是如何使用Java的Socket来实现文件上传功能,即从客户端将文件发送到服务器,然后保存到服务器的数据库...
Socket则是建立网络连接时使用的,连接成功后,服务器和客户端都会创建一个Socket实例,通过这两个实例进行数据传输。 Socket API中,有以下几个关键方法: 1. `accept()`:这个方法用于服务器端,它会阻塞直到有...
在本文中,我们将深入探讨Java Socket编程的关键概念、工作原理以及如何创建服务端和客户端,并讨论如何通过多线程支持多个客户端同时在线。 首先,Socket是网络上的两个进程间通信的端点,它允许数据在网络中双向...
本实例代码是为了配合博客文章,提供一个简单的Java Socket聊天室的实现,帮助读者更好地理解和应用Socket编程。 在Java Socket编程中,主要有两个核心概念:服务器端(Server)和客户端(Client)。服务器端通过...