服务端源码开发之简单socket应用

本文详细介绍如何使用Java搭建一个简单的Socket服务器,包括环境配置、代码解析及运行步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

socket的意思就是TCP/IP,这个是属于网络层的应用,也是最基本的网络通讯基础。这里我们先不讨论概念的东西,先从网上下载一个demo来使用。

编程语言:Java

编译环境:eclipse或其他的可以

编译Java的IDE,本文主要使用的是eclipse

一、下载eclipse

这个自己去官网下载,找一个可以编译Java的就可以。

我下载的是Java EE,链接点这里

下载好,直接安装就好,没什么注意事项。

二、Java环境,下载安装个JDK

官网下载链接点这里,自己找一个对应的版本。jdk是为了提供一个Java代码运行的环境,如果需要Java代码运行起来,不管在本地模拟还是服务器端运行,都需要安装

准备工作做好了

三,开始码代码

package com.example.comm;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;

public class TestServer {
	private static final int SOCKET_PORT = 51000;

	private void initServer() {
		System.out.println("Socket测试服务已启动");
		try {
			// 创建一个ServerSocket,用于监听客户端Socket的连接请求
			ServerSocket server = new ServerSocket(SOCKET_PORT);
			while (true) {
				Socket socket = server.accept();
				new Thread(new ServerThread(socket)).start();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args) {
		TestServer server = new TestServer();
		server.initServer();
	}
	
	private class ServerThread implements Runnable {
		private Socket mSocket;
		private BufferedReader mReader;
		
		public ServerThread(Socket socket) throws IOException {
			mSocket = socket;
			mReader = new BufferedReader(new InputStreamReader(mSocket.getInputStream()));
		}

		@Override
		public void run() {
			try {
				String content = null;
				// 循环不断地从Socket中读取客户端发送过来的数据
				while ((content = mReader.readLine()) != null) {
					System.out.println("收到客户端消息:"+content);
					PrintStream ps = new PrintStream(mSocket.getOutputStream());
					String resp = "hi,很高兴认识你";
					System.out.println("服务端返回消息:"+resp);
					ps.println(resp);
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		
	}
	
}

代码分析:

代码从main()函数开始运行。

1、建立一个serverSocket,IP地址是电脑本地的IPV4的地址或者是申请服务器的公网IP,端口自己定义。

ServerSocket server = new ServerSocket(SOCKET_PORT);

2、accept()函数阻塞等待client接入。

Socket socket = server.accept();

3、为每个client启动一个新线程

new Thread(new ServerThread(socket)).start();

4、线程启动后就会跑到RUN()中来,然后通过输入流mReader.readLine()阻塞等待接收数据。

		@Override
		public void run() {
			try {
				String content = null;
				// 循环不断地从Socket中读取客户端发送过来的数据
				while ((content = mReader.readLine()) != null) {
					System.out.println("收到客户端消息:"+content);
					PrintStream ps = new PrintStream(mSocket.getOutputStream());
					String resp = "hi,很高兴认识你";
					System.out.println("服务端返回消息:"+resp);
					ps.println(resp);
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}

四、编译,运行

eclipse支持在线调试或者导出jar文件用命令行运行。

1、在线运行,选择你要运行的Java工程点击运行

2、导出jar文件用命令行运行

EXPORT->Java->JAR file->Next->Select the export destination->Select the class of the application entry point->Finish。一直点OK就行。

window系统下,按win+R,输入cmd,确定 或者在jar文件保存路劲下,按住shift键再点鼠标右键,输入:java -jar demo.jar。回车,服务器就开始运行了。还有一种方便的方式打开命令行,就是用bat文件运行。新建个后缀为.bat的文件,右键编辑,吧命令行放进去就可以了,记得加换行。该文件要和jar文件放在同个文件夹下。

到这里,服务器的开发就告一段落了,下次有时间再讲讲服务器的购买

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值