1.通信循序渐进过程
①.能够收发字节的服务器端
package Serverv1;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
private InputStream in;
private OutputStream ou;
/**
* 创建服务器
*
* @param port
* :端口号
*/
public void setupServer(int port) {
try {
// 创建服务器套接字
ServerSocket ss = new ServerSocket(port);
while (true) {
// 等待客户端的链接
Socket sc = ss.accept();
System.out.println("一个客户端接入");
//得到输入输出流对象
in=sc.getInputStream();
ou=sc.getOutputStream();
String s="欢迎那个谁!";
this.sendMsg(s);
int t;
//遇到回车结束读取
while((t=in.read())!=13){
System.out.println(t);
}
//关闭客户端的链接
sc.close();
}
} catch (Exception ef) {
ef.printStackTrace();
}
}
//发送信息的私有方法
private void sendMsg(String msg)throws Exception{
ou.write(msg.getBytes());
ou.flush();
}
//程序入口
public static void main(String args[]) {
Server s=new Server();
s.setupServer(12345);
}
}
代码分析:
1.由于程序中sc=ss.accept();//该处阻塞,所以即使是使用while(true){...}这等让人心惊胆战的语句也不用担心,但是要尽量把条件设置为一个变量如:boolean b=true; while(b){....}
2.private void sendMsg()方法:在该方法中的代码常常会被复用,所以在该类中直接定义一个私有方法无疑会是程序变得简化,但是还必须注意的一点是,private 关键字,像这种方法就是只在该类的内部使用,它本身是为简化该类内部的一些核心的方法而设计,而不希望在外部类中调用,所以使用pirvate 不就体现了面向对象的封装特性。
缺陷分析:
》》当telnet客户端断开后,在服务器端会陷入死循环,不停的输出-1(可添加一个判断然后结束死循环)
》》客户端发送过来的任何信息都将被解析为一个byte型的数字,然后输出,而不能还原成客户端本来信息的面目
》》不能同时让多个客户端连接进来
分享到:
相关推荐
通信阶段——循序渐进4 在这个专题中,我们将深入探讨通信阶段的第四部分,重点关注在软件开发中,特别是IT领域中的通信技术和方法。通信是任何系统之间交换信息的基础,无论是设备之间的通信,还是人与人之间的...
循序渐进的学习方法可以帮助我们逐步理解这一复杂的过程。标题"通信阶段----循序渐进6"表明这是一个系列教程的第六部分,可能涵盖了前五个阶段的基础,并在此基础上进一步深入。 在描述中,虽然没有直接给出详细...
《Windows编程循序渐进1-18》是一份深入探讨Windows操作系统编程的教程,旨在帮助初学者逐步掌握Windows编程的核心概念和技术。本教程通过18个章节的详细讲解,全面覆盖了从基础到高级的各种主题,对于网络安全和...
循序渐进学习WinPcap编程是为新手提供的一份指南,帮助他们从基本的安装配置到实现网络数据包捕获,再到深入分析和开发更复杂网络应用的过程。 在开始使用WinPcap之前,需要进行一系列准备工作。首先,需要下载并...
《山寨版QQ——韩顺平循序渐进学Java》是一个基于韩顺平老师的Java教学视频创作的项目,旨在帮助学习者深入理解Java编程语言,尤其是网络编程和GUI设计方面。这个项目分为两大部分:QQ客户端和服务器端,涵盖了基础...
### 循序渐进Linux:基础教材概览与知识点解析 #### 一、Linux系统介绍与版本概述(1.1) - **Red Hat Linux**(1.1.1): Red Hat是最早的企业级Linux发行版之一,广泛应用于服务器领域。它提供了强大的企业级支持...
以技术成长路线为基础,循序渐进地学习Windows系统程序设计和应用软件开发。 涵盖基本开发技能、综合应用开发技术和系统程序设计技术,全面而细致。 实例导向,目标驱动;使读者的阅读过程既轻松愉快,又学...
学习Java是一项系统工程,需要循序渐进地掌握各个知识点。以下是一份详细的Java学习路径,涵盖从基础到进阶的各个部分。 1. **J2SE基础**:首先,你需要掌握Java的基础语法,包括面向对象编程的三大特性——封装、...
以技术成长路线为基础,循序渐进地学习Windows系统程序设计和应用软件开发。 涵盖基本开发技能、综合应用开发技术和系统程序设计技术,全面而细致。 实例导向,目标驱动;使读者的阅读过程既轻松愉快,又学...
《Windows编程循序渐进-代码.rar》是一个与Windows编程相关的资源压缩包,包含了两部分代码实例:Windows编程循序渐进-代码1.rar和Windows编程循序渐进-代码2.rar。这些代码实例通常是为了配合一本名为《Windows编程...
本“PLSql循序渐进全面学习教程”旨在帮助初学者和进阶者深入理解和掌握这一强大的数据库编程工具。教程共分为14个部分,涵盖了PLSql的各个核心概念和技术。 1. **基础篇**:首先,你需要了解PLSql的基本语法,包括...
《Windows编程循序渐进源代码1-3.rar》是一个包含Windows编程教学源代码的压缩文件,涵盖了19个章节的内容。此资源旨在帮助学习者逐步掌握Windows平台下的编程技术,包括MFC(Microsoft Foundation Classes)编程和...
这个“循序渐进ASP.NET教程”旨在帮助初学者逐步掌握ASP.NET的核心概念和技术,从而能够独立地开发高效、稳定的Web应用。 在学习ASP.NET时,首先要理解它的基本架构。ASP.NET采用事件驱动模型,通过控件和事件处理...
本资料包“循序渐进学习Power Builder 6.0.zip”显然是为了帮助初学者或有志于深入理解PowerBuilder的人提供一个系统的学习路径。 首先,让我们来了解PowerBuilder 6.0的基础知识。PowerBuilder采用的是PBDW(Power...
### VB6.0中文版循序渐进教程关键知识点概览 #### 1. Visual Basic 6.0入门与编程基础 - **环境搭建**:介绍如何安装配置VB6.0开发环境,理解集成开发环境(IDE)的布局与功能。 - **基本语法**:涵盖VB6.0中的变量...
本教程“面向对象系统设计循序渐进”旨在为初学者提供一个易懂的学习路径,帮助他们逐步掌握这一领域的核心知识。 首先,我们来探讨UML(统一建模语言)。UML是软件开发中用于建模和描述面向对象系统的主要工具。它...
《QT019-循序渐进学C#》是一本专门为编程初学者设计的教程,旨在引导读者逐步掌握C#编程语言的核心概念和技术。这本书的PDF格式使得读者可以方便地在电子设备上阅读和查阅,同时其详细的目录和清晰的结构确保了学习...
通过循序渐进的学习,读者将能够掌握ASP.NET的全面技能,具备开发复杂Web应用的能力。 总的来说,这门教程覆盖了ASP.NET的基础到进阶知识,不仅适合初学者入门,也对有经验的开发者具有参考价值。通过学习和实践,...
《Windows编程循序渐进》是一本旨在帮助初学者逐步掌握Windows系统下程序设计的教程。这本书通过清晰的章节划分和实例代码,让读者能够深入理解Windows编程的核心概念和技术。光盘源码rar文件包含了书中各个关键章节...
《Windows编程循序渐进》是一本针对初学者和进阶者全面介绍Windows系统编程的书籍,其清晰完整版提供了一套系统的学习路径,适合有志于深入理解Windows平台底层机制的开发者。这本书涵盖了大量的实践案例和详尽的...