Server.java
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
/** 端口号 */
public static final int PORT = 8000;
public static void main(String[] args) {
System.out.println("服务器启动...\n");
Server ser = new Server();
ser.sock();
}
public void sock() {
try {
ServerSocket server = new ServerSocket(PORT);
while (true) {
// 一旦有堵塞, 则表示服务器与客户端获得了连接
Socket client = server.accept();
// 处理这次连接
new PServer(client);
}
} catch (Exception e) {
System.out.println("服务器异常: " + e.getMessage());
}
}
private class PServer implements Runnable {
private Socket socket;
public PServer(Socket sock) {
socket = sock;
new Thread(this).start();
}
public void run() {
try {
// 读取客户端数据
DataInputStream input = new DataInputStream(socket.getInputStream());
// 向客户端发送数据
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
// 读取客户端数据
System.out.println("客户端发过来的内容: " + input.readUTF());
System.out.print("请输入: \t");
// 发送键盘输入的一行
String s = new BufferedReader(new InputStreamReader(System.in)).readLine();
out.writeUTF(s);
input.close();
out.close();
} catch (Exception e) {
System.out.println("服务器 run 异常: " + e.getMessage());
}
}
}
}
Client.java
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.Socket;
public class Client {
/** 端口号 */
public static final int PORT = 8000;
/** ip 地址 */
public static final String IP = "localhost";
public static void main(String[] args) {
System.out.println("客户端启动...");
Socket socket = null;
try {
System.out.println("当接收到服务器端字符为 \"好\" 的时候, 客户端将终止\n");
while (true) {
// 创建一个流套接字并将其连接到指定主机上的指定端口号
socket = new Socket(IP, PORT);
// 读取服务器端数据
DataInputStream input = new DataInputStream(socket.getInputStream());
// 向服务器端发送数据
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
System.out.print("请输入: \t");
String str = new BufferedReader(new InputStreamReader(System.in)).readLine();
out.writeUTF(str);
String ret = input.readUTF();
System.out.println("服务器端返回过来的是: " + ret);
// 如接收到 "好" 则断开连接
if ("好".equals(ret)) {
System.out.println("客户端将关闭连接");
Thread.sleep(500);
break;
}
}
} catch (Exception e) {
System.out.println("客户端异常: " + e.getMessage());
} finally {
if (socket != null) {
try {
socket.close();
} catch (Exception e) {
socket = null;
System.out.println("客户端 finally 异常: " + e.getMessage());
}
}
}
}
}
分享到:
相关推荐
Java 编写基于 CMPP3.0 的 Socket 服务端和客户端是移动通讯领域中常见的技术实践,主要用于实现与移动运营商的短信网关进行数据交互。CMPP(China Mobile Short Message Peer-to-Peer)是中国移动制定的一种短消息...
在这个"java socket服务端和客户端"的项目中,我们可以探讨以下几个关键知识点: 1. **Socket类和ServerSocket类**: - `Socket`类代表了网络上的一个连接,它用于建立客户端到服务器的连接,并进行数据传输。通过...
博客文章"Socket服务端与客户端通讯"应该会详细讲解这些概念,并提供具体的代码示例,如Java或Python等编程语言的实现。通过阅读这篇文章,你可以更深入地理解Socket通信的工作原理,并学会如何应用到一对一聊天系统...
java基于socket服务端向客户端推送信息,反向消息推送,登录上线提示。java基于socket服务端向客户端推送信息,反向消息推送,登录上线提示。
本教程将详细讲解如何利用Java Socket实现基于TCP/IP的服务端和客户端之间的报文发送与接收。 TCP(传输控制协议)是一种面向连接、可靠的传输协议,它确保了数据包的有序和无损传输。IP(互联网协议)则是互联网上...
### Java Socket 长连接客户端和服务端实现 在Java中,使用Socket进行网络通信是一种非常常见的技术手段。本文将详细解读“Java Socket长连接客户端服务端(标准实例)”的相关知识点,包括其实现原理、代码解析及...
本项目 "j2me socket 服务端与 客户端聊天" 展示了如何利用 Socket 技术创建一个简单的聊天应用,使手机能够与服务器进行交互。 **一、J2ME Socket 客户端** 1. **创建 Socket 连接**:客户端首先需要通过 `java...
Java Socket服务端与客户端编程是Java网络编程中的基础部分,主要用于实现两台计算机之间的通信。在本场景中,客户端向服务器发送一个字符串,服务器接收到这个字符串后将其转化为大写并回显。以下是对这个过程的...
socket分为socketserver和socketclient,socketserver是一个简单的建立长连接后等待接收数据,socketclient请求建立与服务端连接,连接建立以后通过servlet发起通信。 服务端直接用application执行; 客户端部署到...
在这个项目中,"基于Android的简单Socket服务端与客户端"实现了两个Android应用程序:一个作为服务端,另一个作为客户端,它们通过Socket进行数据交换。 首先,我们要理解Socket的工作原理。Socket是网络编程的基本...
标题中的“Netty实现Java服务端和C#客户端联通”是指使用Netty作为Java服务器框架,与C#客户端(使用DotNetty库)进行通信的一种技术实现。这涉及到跨平台的网络通信,以及两个不同编程语言间的交互。 Netty是Java...
3. 当客户端连接时,`accept()`返回一个新的`Socket`对象,代表与客户端的连接。 4. 通过`Socket`对象的`getInputStream()`和`getOutputStream()`获取输入流和输出流,分别用于读取客户端的数据和向客户端发送数据。...
Java Socket服务端是一种基于TCP/IP协议的网络通信方式,它允许服务器端与多个客户端进行双向通信。在Java中,Socket编程提供了低级别的、基于字节流的通信原语,是构建分布式应用程序的基础。本项目是一个自己编写...
在本实例中,我们将深入探讨Socket服务端与客户端的通信过程,了解其基本原理和应用。 首先,Socket是Internet协议族的一部分,它为应用程序提供了低级别的网络通信接口。在TCP/IP模型中,Socket位于传输层,可以...
Java Socket服务端和客户端编程是Java网络编程中的核心部分,主要涉及TCP/IP协议栈和客户机/服务器(C/S)架构。TCP/IP协议是互联网通信的基础,它由多个层次组成,其中IP层负责主机定位和路由,而TCP层提供可靠的...
每当有新的客户端连接时,`accept()`方法都会返回一个新的`Socket`对象,代表与该客户端的连接。 3. **数据交换**: 一旦客户端连接,就可以通过`Socket`对象的`InputStream`和`OutputStream`进行数据的读写。`...
通过构建服务端和客户端来展示Socket通信程序的一般实现框架,本程序使用了最基本的Socket及连接池、线程及线程池等,程序简单易理解,适合Java基础学习的同学学习参考,如果读者需要在自己的业务中使用此框架进行...