创建简单服务器

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

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


①使用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

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