简单通信服务器
在做通信的项目之前我们先了解服务器,我的理解是服务器类似于中转站,接受一个/多个客户端 的消息再转发给其他客户端,更形象的来说他像一个管道,连接着客户端! 因此,在实现通信前我们必须将管道接通,否则无法通信!
//创建绑定到特定端口的服务器套接字,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实现客户端与服务器之间的简单通信,快速熟悉掌握三次握手与四次挥手。。。
一个简单的类似IPMessage的小工具,实现了局域网内的简单通信功能,并且以自身机器做服务器。
一个简单的客户端和服务器通信连接,拿来分享一下
运用socket编程技术实现服务器与客户端之间的简单通信,c语言
本代码是用java语言实现的网络中客户机与服务器通信的模拟,接入同一网络的两台电脑可一台作为客户机、另一台作为服务器,实现简单文字通信。代码问价为文本格式,利用电脑cmd执行即可运行。
用QT写了的一个简单的服务器端和客户端。有基本的图形界面,可以实现相互数据通信
简单的客户端socket通信
java代码实现客户端与服务器端的Socket通信,客户端与服务器端进行简单的聊天功能
MFC socket简单的客户端服务器通信软件,一个客户端一个服务器,服务器将收到的信息回传
socket简单服务器客户端通信测试代码
UDP能够在局域网与广域网中服务器与客户端实现的简单的通信
简单多客户端Tcp通信,服务器转发消息,控制台11111111111111111111111111111111111111111111111111111111111111
简单的客户端和服务器通信,采用C#语言编程,运用socket编程的基本原理,实现了客户端与服务器的通信。适合于初学者!可以在此程序的基础上进行改进!
针对Android java 客服端和服务器的简单通信
java Socket模拟客户端和服务器通信,简易窗体实现,代码简易,方便学习使用。服务器和客户端的代码放在一起了,中间有空行标注,记得分开。
采用python语言,利用socket通信实现的服务器端,简单实现了收和发的功能。
UDP通信,实现客户端和服务器端互发消息,简易版。
一个服务器和客户端的简单通信工具,有需要的朋友不要错过。注意事项:开发环境为Visual Studio 2013,使用.net 4.5开发。
C#使用Socket实现服务器与多个客户端通信(简单的聊天系统)
java 模拟服务器与客户端之间的通信 java 模拟服务器与客户端之间的通信