`
神说要好好学习
  • 浏览: 5734 次
  • 性别: Icon_minigender_2
最近访客 更多访客>>
社区版块
存档分类
最新评论

最简单的服务器的创建

 
阅读更多
几个概念:客户端 服务器 端口
①客户端
②服务器
③端口:客户端进入服务器的门(通俗解释~),有0-2^16个

目标:实现简单的客户端和服务器短的交互
准备工作:
①开启telnet:控制面板→程序→程序与功能→打开或关闭windows功能 
②得到本机的IP:cmd输入ipcongif,在联网的情况下可以获得本机的IP值 
步骤:
1.创建服务器:
java.net.ServerSocket  创建一个服务器对象
        要捕捉异常:端口可能被占用或者超出端口范围
        要有一个开放的端口
2.创建客户端:
        客户端对象  java.net.Socket
        创建了服务器后,服务器一直处于待机状态
        服务器对象server的方法server.accept() 会返回一个Socket类型的对象当且仅当有客户端与服务器端相连接的时候才会执行
        代码: 可以简单的理解为客户端连接上了服务器
         
Socket client = server.accept();

         
3.实现交互:输入流和输出流
        因为要实现交流,需要输入输出流  通过client得到
        输入流是用来:客户端得到的
        输出流是用来:在服务器端输出的
4.测试:程序运行后,服务器端处于待机状态
        开启cmd:telnet+IP+端口号   IP可以直接为127.0.0.1  127.0.0.1是回送地址,指本地机,一般用来测试使用
5.在关闭cmd但是未关闭程序时,程序会死循环输出-1

public class ChatServer {
	/**
	 * 创建服务器对象
	 */
	public void creatServer(){
		try {
			//创建服务器对象,并开放2638端口,要捕捉异常
			ServerSocket server = new ServerSocket(2638);
			System.out.println("服务器创建成功");
			//创建客户端
			Socket client = server.accept();
			InputStream ins = client.getInputStream();
			OutputStream outs = client.getOutputStream();
			String s = "Hello World!";
			outs.write(s.getBytes());
			//t 客户端读到的  t=13为回车键
			int t = ins.read();
			while(t!=13){
				System.out.println("客户端输入"+ t);
				t = ins.read(); 
			}
			if(t==13){
				System.out.println("链接断开");
			}
			client.close();//链接断开
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}


    用上述方法创建的服务器,只能在客户端输入一句话就断开,而且客户端收到的还是键盘的编码,不是输入的内容,因此作出改进,先要解决以下两个问题:
1.发出一条消息就退出:
    设置服务器循环等待:可以设置一个标签flag,当其为0的时候就进入等待状态;
   
       while(flag==0){
	           Socket client = server.accept();
       }			

2.解决服务器端收到的是数字而不是字符串的问题:
    创建一个StringBuffer对象stb,它类似于一个String的缓冲区或者理解为可变的字符串,通过一个append方法,可以将字符添加到StringBuffer对象中去
    输入流InputStream得到的是输入的键盘编码,是int类型的,将它强制转化为char类型之后,把它添加到stb的后面
 
       /**
	 * 字符串的读取方法
	 * @param ins  获取键盘输入
	 * @return  返回键盘输入的字符串
	 */
	public String readString(InputStream ins){
		try {
			//创建一个字符串缓冲区
			StringBuffer stb = new StringBuffer();
			char c = 0;
			while(c!=13){
				int i;
				i = ins.read();
				c = (char)i;
				stb.append(c);
			}
			//将StringBuffer类转化为String
			//trim()是字符串的一个方法,去掉开始和结尾的空格
			String temp = stb.toString().trim();
			return temp;
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
	}
分享到:
评论

相关推荐

    C# SuperSocket 手把手教你入门 傻瓜教程-4(创建一个最简单的服务器和多客户端双向通信程序)

    最简单的服务器和多客户端双向通信程序,压缩包内有SocketTool.exe程序,方便使用测试服务器和客户端进行通信。教程参见https://blog.csdn.net/ba_wang_mao/article/details/115672920

    易语言源码最简单的FTP服务器.7z

    在这个“易语言源码最简单的FTP服务器.7z”压缩包中,我们主要讨论的是如何使用易语言来实现一个基础的FTP(File Transfer Protocol)服务器。 FTP是互联网上广泛使用的文件传输协议,允许用户从一台计算机(客户端...

    最简单的FTP服务器软件

    "最简单的FTP服务器软件"可能指的是一个轻量级、易于配置和管理的FTP服务程序,旨在为用户提供快速搭建FTP服务器的解决方案。这类软件通常面向不熟悉复杂网络设置的普通用户,旨在简化FTP服务器的设置和管理过程。 ...

    最简单的FTP服务器代码

    在本文中,我们将深入探讨FTP服务器的基本概念,以及如何构建一个简单的FTP服务器,这与“最简单的FTP服务器代码”这个主题紧密相关。 FTP服务器的核心功能是接收来自客户端的连接请求,管理用户的访问权限,并处理...

    最简单的Web服务器

    【标题】:“最简单的Web服务器” 在IT领域,构建一个Web服务器是许多初学者和开发者的基本技能之一。这里提到的“最简单的Web服务器”是指基于Web OSGI框架实现的一个基础服务实例。Web OSGI(Web Oriented OSGi)...

    最好的在服务器上创建隐藏用户的工具HideAdmin

    7. **安装与配置**:HideAdmin可能提供简单易用的界面,使得非专业IT人员也能轻松上手,快速完成用户创建和配置。 8. **绿色软件**:从压缩包中的`!创e下载┆绿色软件天堂.URL`可以推测,HideAdmin可能是一款绿色免...

    最简单最好用的服务器版ftp工具

    综上所述,"最简单最好用的服务器版ftp工具"应该具备易用、安全、功能丰富等特点,能够帮助用户轻松地完成远程服务器上的文件管理工作。而提供的“ftp.exe”文件可能是一个轻量级的FTP客户端程序,旨在简化上述操作...

    最简单的PHP服务器

    【标题】"最简单的PHP服务器"指的是一个专为PHP程序调试设计的简易服务器软件。它不包含复杂的数据库功能,使得开发者能够专注于PHP代码本身的运行和调试,而不必处理额外的数据库配置和管理任务。 【描述】"不包括...

    QT C++创建HTTP服务,C++快速简单创建web服务器 QT快速提供Resful接口 C++创建Resful服务

    QT C++创建HTTP服务,C++快速简单创建web服务器 QT快速提供Resful接口 C++创建Resful服务 C++快速提供get、post服务 C++实现HTTP服务 搭建HTTP服务 https://blog.csdn.net/weijia3624/article/details/139236610 ...

    Mdaemon邮件服务器创建

    本文将详细解释如何创建基于Windows 2003 Server操作系统的Mdaemon邮件服务器,并配置DNS服务以确保邮件的正常收发。 首先,我们需要进行邮件服务器的基础建设,即安装操作系统。【步骤1】选择Windows 2003 Server...

    最简单的ftp服务器

    创建一个FTP服务器意味着你可以让你的资源被其他人访问和下载,这对于团队协作、资源共享或者个人文件分享非常有用。下面我们将详细介绍如何搭建一个简单的FTP服务器以及相关的知识点。 一、FTP服务器的基本原理 ...

    Telnet服务器端最简单实例源码

    【标题】"Telnet服务器端最简单实例源码"提供了在Windows环境下构建基本Telnet服务的编程示例,适用于VC++6.0、7.0、8.0等开发环境。这个实例源码由Lei FAN制作,并可以通过邮件ielnaf@qq.com联系到作者。 【描述】...

    JAVA简单服务器源代码

    这个"JAVA简单服务器源代码"提供了一个实例,展示了如何利用Java语言构建一个能够连接MySQL数据库并处理个人信息传输的服务器。让我们深入了解一下这个项目的核心知识点。 首先,我们需要理解Java服务器的基本结构...

    用socket实现的最简单的web服务器示例

    本示例将深入讲解如何使用Python的socket库来实现一个最简单的Web服务器。这个服务器能够响应HTTP请求,并返回固定的内容,对于初学者理解Web服务器的工作原理非常有帮助。 首先,我们需要了解Web服务器的基本工作...

    基于node最简单最小化的web服务器

    "基于node最简单最小化的web服务器"这个项目,就是利用Node.js的特性来创建一个基础且轻量级的HTTP服务器,这对于前后端分离的开发模式至关重要。 Node.js是一个开源的JavaScript运行环境,它让开发者能够在服务器...

    NodeJS创建最简单的HTTP服务器

    Node.js创建最简单的HTTP服务器涉及的核心知识点可以分为以下几个部分: 1. Node.js基础介绍: Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,它允许开发者使用JavaScript来编写服务器端脚本。Node.js...

    最简单的web服务器的代码java.doc

    本文档的标题是“最简单的 Web 服务器的代码 Java”,这表明本文档是一个关于使用 Java语言实现简单 Web 服务器的教程。 描述解析 本文档的描述是“最简单的 Web 服务器的代码 Java”,这进一步强调了本文档的主题...

    世界上最简单的ftp工具,ftp服务器工具

    在本文中,我们将深入探讨这个“世界上最简单的FTP工具”以及如何在局域网环境中使用FTP服务器。 FTP工具通常具有用户友好的界面,使得文件传输对非技术用户来说变得简单。它们通常包括基本功能,如登录到服务器、...

    最简单的访问OPC服务器方法.doc

    在本文档中,作者分享了如何最简单地访问 OPC 服务器的方法,主要分为两个部分:建立 OPC 服务器和访问 OPC 服务器。 1. 建立 OPC 服务器: - 首先,需要安装 OPC 服务器软件,作者使用的是 Kepware OPC V4.54。...

    最好用最简单的ftp Xlight FTP服务器

    Xlight FTP服务器是一款备受推崇的轻量级FTP服务器软件,因其简洁的界面和易于操作的特点,被誉为“最好用”和“最简单”。它为个人和企业用户提供了一个高效且稳定的文件共享解决方案。 Xlight FTP服务器的主要...

Global site tag (gtag.js) - Google Analytics