Java Socket编程系列(一)开发一次性会话的Server和Client
关于什么是Socket:
A socket is one end-point of a two-way communication link between two programs running on the network.
Socket是网络上运行的2个程序之间通信链接的终点。说白了就是代表一条通信链路的两端。
Socket classes are used to represent the connection between a client program and a server program.
Socket类用来代表客户端程序和服务器端程序的连接。
The java.net package provides two classes--Socket and ServerSocket--that implement the client side of the connection and the server side of the connection, respectively
Java中的java.net包提供了Socket和ServerSocket类分别实现连接的客户端和服务端。
Java中如何编写?
服务器端:
package com.dylan.socket;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
/**
* 服务器
*
* @author xusucheng
* @create 2017-12-21
**/
public class Server {
public static final int PORT = 8858;//监听的端口号
public static void main(String[] args) throws Exception {
System.out.println("Server started! Listening...");
ServerSocket serverSocket = new ServerSocket(PORT);
Socket server = serverSocket.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(server.getInputStream()));
PrintWriter out = new PrintWriter(server.getOutputStream());
String readLine = in.readLine();
if (readLine != null) {
System.out.println("Receive message from Client: " + readLine);
out.println("Roger!");
}
out.close();
in.close();
server.close();
serverSocket.close();
}
}
客户端:
package com.dylan.socket;
import java.io.*;
import java.net.Socket;
/**
* 客户端
*
* @author xusucheng
* @create 2017-12-20
**/
public class Client {
public static final String HOST = "127.0.0.1";//服务器地址
public static final int PORT = 8858;//服务器端口号
public static void main(String[] args) throws Exception{
Socket client = new Socket(HOST,PORT);
//创建输入流
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
//创建输出流
PrintWriter out = new PrintWriter(client.getOutputStream(),true);
//向服务器程序发送信息
out.println("Hello Server! This is Client! ");
//接收来自服务器程序的响应
String readLine=in.readLine();
if(readLine!=null){
System.out.println("Receive message from Server: "+readLine);
}
//关闭链接
out.close();
in.close();
client.close();
}
}
启动
服务器端
Server started! Listening...
Receive message from Client: Hello Server! This is Client!
客户端:
Receive message from Server: Roger!
分类:
Java-Core
标签:
java socket
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构