网络通信初识
1.通信必须在两方建立:服务器端和客户端。
执行这行代码:java.net.ServerSocket server=new java.net.ServerSocket(port);就可以创建一个服务器对象。port是服务器的端口,当服务器对象创建成功后,调用:server.accept()方法,等待客户机与之建立连接。该方法会阻塞,也就是:必须有客户端与之建立连接得到一个连接对象,才会执行下行代码,否则会一直等待客户机的连接。
Socket client=server.accept()建立好了连接。
2.InputStream ins=client.getInputStream()调用该方法就可以接受服务器端发送来的消息。
OutputStream ous=client.getOutputStream()调用这个方法则可以向服务器发送消息。
3.当一切准备就绪时,还必须规定双方通信的规则,这个规则并不是唯一的,而是通信双方协商好的。比如我们之前写的简单的聊天系统,当通信双方遇到"/r/n"就认为是一条聊天消息。又比如我们写的xmpp聊天系统,双方的协议是<msg>总的消息内容</msg>,通信双方则认为:遇到</msg>则认为之前的是一条消息。所以,在写服务器端与客户端时,协议是最重要的。双方都必须遵守协议。
4.在聊天系统中除了accept()方法会阻塞,read()方法也会阻塞,它必须等待对方发送字节过来。readLine()方法也会阻塞,它是整行读取。它必须等待对方发送一条回车换行的消息。
5.并不是所有的while(true)都是死循环,当程序中的方法有阻塞时,就不会。线程可以在阻塞时休眠。
在程序中学到的知识点:
1.Scanner sc=new Scanner(System.in);//可以再命令行输入
String msg=sc.next();//得到输入的值。
当输入为:xiao yi
msg的值却是xiao,并不是xiao yi.
这是跟StringBuffer的区别,StringBuffer对象得到的值就是:xiao yi.
2.在编写聊天系统时,我们经常会犯这种错误:显示不出来对方发送的消息。这可能就有两种原因:第一,对方发送消息失败。第二,本身读取消息有误。我们可以通过测试:看是哪方出现错误。
比如:我今天写的xmpp聊天系统:服务器端发送下线通知时,并没按照协议把整个xml字符串发送给客户端。而只是发送了下线用户的名字:当在客户端打印时:并没打印。原因:客户端解析一条消息时,是以</msg>结束符的,而发送来的消息没有这个结束符,那就自然不会显示打印啊。最好的办法就是:打印字节。
分享到:
相关推荐
通信工程是信息技术领域的重要组成部分,涉及网络建设、信号传输、数据通信等多个方面。在实际的工程实践中,通信工程图纸的勘察设计与制图是至关重要的环节。本篇内容主要介绍了通信工程图纸的初步认识和使用CAD...
5. 网络软件:包括网络操作系统(如UNIX、Netware、Windows NT)、网络协议软件和通信软件等,确保网络通信的正常进行。 计算机网络的主要功能是资源共享和信息传输。通过网络,用户可以便捷地查找和获取各种资料,...
总结来说,初识通信并建立多线程服务器需要理解网络编程的基本概念,掌握`ServerSocket`和`Socket`的使用,以及线程的管理。在实现过程中,合理使用如`StringBuffer`这样的线程安全类,能有效提升程序的性能和稳定性...
Linux命令行界面是用户与操作系统交互的主要方式,通过各种命令可以完成文件管理、系统控制、网络通信等任务。常见的命令包括: - `ls`:列出目录内容。 - `cd`:切换当前工作目录。 - `pwd`:显示当前工作目录...
总的来说,中学信息技术课件中的"IP地址初识"主题,旨在让学生了解IP地址的基本概念、格式、转换方法以及分类规则,为后续学习网络通信、网络配置和网络安全等高级主题打下坚实的基础。通过图文并茂的方式,可以更...
* 计算机网络的定义:计算机网络是指由多个计算机设备和通信设备通过通信线路连接起来,实现资源共享和信息交换的系统。 * 计算机网络的功能:计算机网络的主要功能包括数据传输、资源共享、信息交换等。 二、...
在网络通信中,IP地址扮演着至关重要的角色。它是一个32位的二进制数,通常采用点分十进制表示,如100.4.5.6。IP地址用于唯一标识网络中的主机和设备,使得数据包能在网络中找到正确的目的地。127.0.0.1是本机环回...
【初识计算机网络】教学设计主要关注初中生对计算机网络基础知识的理解和掌握,旨在激发学生对信息技术的兴趣,培养他们的信息素养。本课程基于《中小学信息技术课程指导纲要(试行)》的精神,强调“以教师为主导,...
通信系统参数是衡量和优化通信网络性能的关键指标,它们涵盖了信号质量、干扰水平、系统容量和覆盖范围等多个方面。以下是对这些重要参数的详细解释: 1. Ec/Io:这是导频信道上的信号能量(Ec)与干扰能量(Io)的...
路由器是最典型的网络设备,也是数据通信网络当中最重要的设备,它通过运行路由选择协议,计算出路由条目,进而形成路由表,为网络 中的数据包提供转发服务。本文以CISCO路由器为基础,介绍了路由器的基本知识和使用...
《初识计算机网络》教学设计归类主要涵盖了计算机网络的基础知识,旨在帮助初中的学生建立对计算机网络的基本认知,激发他们对信息技术的兴趣,并培养他们在信息社会中的基本素养。以下是教学内容的详细说明: 1. ...
计算机网络是计算机系统和通信设备通过通信线路连接起来,实现资源共享和信息传递的系统。计算机网络可以分为不同类型,例如广域网、局域网、城域网等。计算机网络的功能包括资源共享、信息传递、实时集中处理、均衡...
"初识数据库和Access" 数据库是指为了实现一定的目的按某种规则组织起来的“数据”的“集合”。数据库系统的发展史可以追溯到20世纪50年代至60年代早期,磁带被用于数据存储,磁带(和卡片)都只能顺序读取。后来,...
本文档为通信网络仿真技术实验报告,实验利用matlab和simulink进行通信网络的仿真,对通信网络的性能进行有效评估和预测。