// takes input from the client socket
in = new DataInputStream(
new BufferedInputStream(socket.getInputStream()));
String line = "";
// reads message from client until "Over" is sent
while (!line.equals("Over"))
{
try
{
line = in.readUTF();
System.out.println(line);
}
catch(IOException i)
{
System.out.println(i);
}
}
System.out.println("Closing connection");
// close connection
socket.close();
in.close();
}
catch(IOException i)
{
System.out.println(i);
}
}
public static void main(String args[])
{
Server server = new Server(5000);
}
}
重要事项
服务器应用程序在特定的端口5000上创建一个ServerSocket 。这将启动我们的服务器 , 以侦听端口5000传入的客户端请求 。
然后 , 服务器创建一个新的Socket以与客户端进行通信 。
socket = server.accept()
accept()方法会阻塞(只是坐在那里) , 直到客户端连接到服务器为止 。
然后 , 我们使用getInputStream()方法从Socket获取输入 。我们的服务器一直在接收消息 , 直到客户端发送“结束”为止 。
完成后 , 我们通过关闭Socket和输入流来关闭连接 。
要在计算机上运行客户端和服务器应用程序 , 请同时编译它们 。然后 , 首先运行服务器应用程序 , 然后运行客户端应用程序 。
在终端或命令提示符上运行
打开两个窗口 , 一个用在服务器 , 另一个用在客户端
1.首先以方式运行Server应用程序
$ java Server
服务器开始
等待客户端…
2.然后 , 在另一个终端上运行客户端应用程序 , 如下所示:
$ java Client
它将显示–已连接 , 并且服务器接受客户端并显示
3.然后 , 您可以开始在“客户端”窗口中键入消息 。这是给客户的样本输入
Hello
I made my first socket connection
Over
服务器同时接收并显示的内容 ,
Hello
I made my first socket connection
Over
Closing connection
请注意 , 发送“ Over”将关闭客户端和服务器之间的连接 , 就像之前所说的那样 。
如果您使用的是Eclipse或类似的工具 ,
在两个不同的终端或选项卡上编译它们两者
首先运行服务器程序
然后运行客户端程序
在客户端窗口中键入消息 , 服务器窗口会同时接收并显示这些消息 。
键入结束 。
推荐阅读
- Javascript中操作String字符串的33种方法,你都知道吗?
- 再推荐5个Java项目开发快速开发脚手架。项目经验和私活都不愁了
- Java集合的常见用法你知道多少?
- java人脸融合
- Java在现实中实际开发的主要领域在哪些方面?
- 前5个基于Redis的Java对象
- Java中的BigDecimal,你真的会用吗?最强指南
- 解析10个JavaScript笔试题
- 认识 V8 引擎
- 这可能是你见过的用JavaSwing开发的最美的软件