简单通信服务器
在做通信的项目之前我们先了解服务器,我的理解是服务器类似于中转站,接受一个/多个客户端 的消息再转发给其他客户端,更形象的来说他像一个管道,连接着客户端! 因此,在实现通信前我们必须将管道接通,否则无法通信!
//创建绑定到特定端口的服务器套接字,duankou为端口号
ServerSocket ss =new ServerSocket(duankou);
// 侦听并接受到此套接字的连接
Socket client = ss.accept();
如此我们便建立了客户端与服务器的连接,如果还没有创建客户端所以可先使用系统自
带的客户端(打开cmd输入telnet 本机的ip 端口号 ——————————即可);
接下来,在连通的基础上我们要实现互相发送消息的功能,这就要涉及到发送和接受消
息,两个方面了!这里为了规范我将发送和接受各自写一个方法。
/**
*发送消息
*/
public void send(){
try {
//取得Socket对象的输出流
OutputStream os=client.getOutputStream();
//在窗体的显示文本框中显示输出的内容并转行
//(用于服务器可视化,初学可不用)
message=db.text2.getText()+"\r\n";
//将字符串转换成byte使用输出流输出
byte[] b=message.getBytes();
os.write(b);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
*接收消息(先实现最简单的)
*@param client:
*/
public void receive(Socket client){
try {
InputStream is=client.getInputStream();
//InputStreamReader 是字节流通向字符流的桥梁
InputStreamReader inr=new InputStreamReader(is);
//为了达到最高效率,可要考虑在 BufferedReader 内包装 InputStreamReader
//从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
BufferedReader bin=new BufferedReader(inr);
String st = bin.readLine();//正行读取
//循环的读取内容
while(true){
ClientList.CastMessage(this.user, st);
//将cmd上的内容打印到窗体上
db.text1.append(this.user.getUserName()+" : "+st+"\r\n");
//读取一个文本行
st = bin.readLine();
}
} catch (IOException e) {
e.printStackTrace();
}
}
现在呢就能实现一个特别简单的服务器
小结一下:建立连接
发送接收
发送时:只需取得连接的Socket对象的输出流,将要发送的消息转换为byte数组即可
接受时:应取得连接的Socket对象的输入流,将其转换为字符输入流在进行包装,这样做是为了可读取中文并达到最高效率。
(还有一种方法可在读取时正确读取中文而不出现乱码)
InputStream is=client.getInputStream();
int length=is.available();
byte[] bytes=new byte[length];
is.read(bytes);
String st=new String(nytes,"GB2312");
当然我们并不满足于此,我们还可以实现多个客户端同时发消息、将服务器可视化、设置用户列表、实现用户凭借用户名登陆、显示在线用户等。呵呵 ,这个下次再说!先消化这个就好!
分享到:
相关推荐
本教程将深入探讨如何利用Socket库在Python中实现客户端与服务器之间的简单通信,这涉及到TCP/IP协议中的三次握手和四次挥手过程。 首先,我们来看TCP(传输控制协议)的三次握手。三次握手是为了确保连接的可靠性...
休闲网游的通信架构相对简单,因为它们通常不需要大规模的同步和复杂的逻辑。游戏可能只需要较少的服务器,专注于提供流畅的用户体验和快速响应。 设计网游服务器通信架构时,需遵循以下基本原则: 1. 高效的网络...
易语言简易WEB服务器是一款基于易语言开发的简单网络服务器软件,主要目标是为初学者提供一个学习和理解HTTP协议、网络编程以及服务器构建基础的平台。这个源码可以帮助开发者了解如何处理HTTP请求,如何响应客户端...
即时通信服务器是网络环境中用于实现实时交流的关键组件,它为用户提供快速、高效的信息传递服务。本篇将重点介绍即时通信服务器的相关知识点,包括RTX服务器的安装与配置以及FICQ的安装与配置。 首先,RTX(Real ...
### 计算机网络客户端与服务器简单通信 #### 实验目的 本次实验旨在设计并实现一个简单的客户端与服务器之间的通信程序。目标在于让参与者通过实际编程加深对TCP与UDP这两种主流传输层协议的理解,掌握基本的Socket...
本项目通过Java编程语言实现了客户端和服务器之间的简单文字通信,让我们深入探讨这一过程。 首先,Java是跨平台的面向对象编程语言,它的“一次编写,到处运行”特性使得开发网络应用变得便捷。在Java中,我们可以...
JavaScript是Web开发中不可或缺的一部分,尤其在客户端与服务器之间的通信方面扮演着重要角色。本教程将深入探讨三种主要的JavaScript与服务器通信方法:单向Image对象通信、双向img标记通信以及双向script标记通信...
对于压缩包中的文件"TCP",可能包含的是一个简单的TCP服务器或客户端的源代码示例,或者是用于测试TCP连接的实用程序。这些资源可以帮助初学者理解TCP通信的工作原理,或者为开发者提供快速测试TCP功能的手段。 ...
在本项目中,"C++实现邮件通信服务器"是一个基于TCP/IP协议的课程设计,它展示了如何使用C++编程语言构建一个功能完善的邮件服务器。这个邮件服务器能够接收、处理和发送电子邮件,对于学习网络编程和C++编程的学生...
简易IIS服务器的配置相对简单,主要涉及以下几个步骤: 1. 安装IIS:在控制面板的“程序”菜单中选择“启用或关闭Windows功能”,勾选“IIS”相关的选项。 2. 配置网站:在IIS管理器中,右键点击“网站”节点,...
在这个场景中,我们将讨论如何使用Java实现一个简单的文件传输功能,即客户端通过Socket连接将文件发送到服务器。 首先,我们需要理解Socket通信的基本流程: 1. **服务器端**: - 创建`ServerSocket`实例,指定...
在Java编程领域,客户端-服务器通信是网络编程的基础,它允许不同计算机间的程序进行数据交换。在这个简陋版的实现中,我们不依赖JSON作为数据交换格式,而是可能使用了自定义的序列化方式或者纯文本格式。我们将...
PSX643E通信服务器还支持后台一体化配置,工程配置简单高效,并且易于排查错误。 在技术性能及指标方面,PSX643E通信服务器的性能参数包括采用的Freescale MPC8315处理器,400MHz主频,板载512MB DDR2内存,128MB ...
一个简单的类似IPMessage的小工具,实现了局域网内的简单通信功能,并且以自身机器做服务器。
本示例“客户端服务器简单通信.rar”着重展示了如何利用Socket编程技术在B/S(Browser/Server)模式下实现客户端与服务器之间的交互。通过分析压缩包中的server.cpp和client.cpp文件,我们可以深入理解这一过程。 ...
在Android应用开发中,与服务器进行通信是必不可少的环节,特别是在构建涉及用户登录、数据交换等应用场景时。本文将深入探讨Android与服务器通信的基本概念、技术选型以及具体实现方式,以标题“android与服务器...
《通信服务器数据库编辑器使用说明》 在电力自动化领域,通信服务器数据库编辑器扮演着至关重要的角色。本文档主要针对山东鲁能积成电子股份有限公司的iES-DMS1000配电自动化系统中的通信服务器数据库编辑器进行...
在这个项目中,我们看到的是一个基于QT的简单TCP客户端和服务器端的实现,它们能够通过网络进行数据通信。 在TCP/IP通信中,服务器端首先启动并监听特定的端口,等待客户端的连接请求。QT中的`QTcpServer`类就是...
本教程将深入讲解如何使用Java的Socket API来实现客户端与服务器端的简单通信,实现一个基础的聊天功能。 首先,我们要理解客户端和服务器端的概念。客户端是发起请求的一方,而服务器端则是接收并响应请求的一方。...
《服务器客户端通信工具1.0.zip》是一款基于.NET框架4.5开发的简易通信软件,专为需要进行服务器与客户端间交互的人群设计。这款工具的出现,旨在简化网络通信中的编程工作,使得开发者能够更加专注于业务逻辑,而...