Java Socket实战编程指南( 二 )


 
// 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或类似的工具 , 
在两个不同的终端或选项卡上编译它们两者
首先运行服务器程序
然后运行客户端程序
在客户端窗口中键入消息 , 服务器窗口会同时接收并显示这些消息 。
键入结束 。




推荐阅读