创建简单服务器

简介: 实现目标:创建一个简单的服务器,可以将客户机发来的消息显示出来,之后再返回给客户机。

实现目标:创建一个简单的服务器,可以将客户机发来的消息显示出来,之后再返回给客户机。


①使用java创建一个服务器的指令非常简单,就是在指定窗口上创建一个java.net.ServerSocket对象。

代码如下:

private ServerSocket server;
public void setUpServer(int port) {
try {
//创建服务器
server = new ServerSocket(port);
System.out.println("已创建服务器" + port);
} catch (IOException e) {
e.printStackTrace();
}
}


②服务器创建之后就相当于进入了待机状态,等待其他的客户机来连接


// 让服务器进入等待状态


Socket client = server.accept();

需要注意的是:在调用 server.accept()方法时,程序就会“阻塞”在这里——直到有一个客户机连接上来,这个方法才会返回一个 Socket 类的对象来代表服务器与客户机之间的连接



③要接受客户机发来的消息并返回给客户机,就必须创建输入输出流对象。


向输入流中写入的数据,就被发向了客户机;从输出流对象中读取数据,读到的就是客户机发来的数据;



// 从连接对象上获取输入输出流对象
OutputStream out =client.getOutputStream();
InputStream in = client.getInputStream();
out.write("欢迎来到聊天室\r\n".getBytes());
out.write("输入quit退出\r\n".getBytes());



④使用输入输出流进行对数据的读写操作,在这里实现了一次读取一行字符串的功能,直至按下回车输出;


String s = new String();
while (true) {
char ch = (char) in.read();
System.out.println();
System.out.print("用户输入:" + ch);
if (ch == '\n') {
out.write(("服务器收到:\r" + s).getBytes());
out.write("\r\n".getBytes());
s = new String();
}
s = s + ch;
if (s.contains("quit")) {
break;
}
}
out.flush();
out.close();


⑤使用telnet来测试创建的服务器

78.png

相关文章
|
4天前
|
Kubernetes 安全 Docker
在 K8s 集群中创建 DERP 服务器
在 K8s 集群中创建 DERP 服务器
|
4天前
|
自然语言处理 算法
WordPiece词表的创建
WordPiece词表的创建
5 0
|
弹性计算 Ubuntu Linux
服务器实例
使用Ubuntu OS和Apache完成对ECS公网IP的监听和浏览器访问
172 0
服务器实例
|
弹性计算 安全 关系型数据库
实例连接管理 | 学习笔记
快速学习实例连接管理
60 0
实例连接管理 | 学习笔记
|
JavaScript CDN
创建一个简单的色轮
创建一个简单的色轮
181 0
创建一个简单的色轮
|
Kubernetes NoSQL 网络协议
初识 K8s,创建一个 guestbook 留言簿应用
本文介绍一个简单的 K8s 上手应用,希望通过这个简单的实践让大家对 K8s 的核心概念有更深入的理解。这个案例要在 Kubernetes 集群上部署一个名叫 guestbook 的 CURD 应用。guestbook 是 Kubernetes 社区的一个经典的应用示例,它有一个 Web 界面来让用户进行 CURD 操作,然后向一个 Redis 主节点写入数据,从多个 Redis 从节点读去数据。
|
域名解析 弹性计算 安全
网站创建(第一)
域名申请相关 知识点引入 什么是域名? 首先呢!域名是由一串字符组成的,域名会指向某一个ip地址。 域名有什么用呢?根本作用就是为了方便记忆,便于用户访问网站 ip地址是什么? 我们这样理解,ip地址是互联网分配给主机的编号,如果我们的电脑可以比作电话的话,那么我们的ip地址你就可以把他当作电话号码。 ip和域名之间的关系 一般用户上网的时候互联网就会给电脑或者手机分配一个随机的ip地址,作为上网的门牌号,所以一般可以通过ip地址找到网站。但是一般普通用户的话是禁用从
147 0
网站创建(第一)
|
弹性计算 Linux 网络安全
连接服务器的几种方式
本文撰写了3种连接阿里云服务器的方式
3434 2
连接服务器的几种方式
|
运维 Linux
RH236创建Brick
RH236创建Brick
119 0
RH236创建Brick