如何实现无缝编程呢

2021-08-24 合山装修公司

大部分客户端请求能进入相同的端口,因此也能进入相同的ServerSocket。客户端的连接请求在端口上进行排队,所以服务器可以继续接受请求;然而,服务器可以通过使用线程同时为它们服务(例如,每个客户端连接对应于一个线程)。这个逻辑经常用在多连接Java服务器应用程序上。看看下面的例子:

while (true) {

accept a connection ;

create a thread to deal with the client ;

高贵大方。 end while

新线程从客户端读取数据,并将数据写回客户端。当服务器成功地与客户端建立连接之后,服务器端可以使用下面这段代码与客户端通信:

PrintWriter out = new PrintWriter(

tOutputStream(), true);

BufferedReader in = new BufferedReader(

new InputStreamReader(

tInputStream()));

String inputLine, outputLine;

while ((inputLine = adLine()) != null) {

outputLine = inputLine;

intln(outputLine);

if uals(\"Bye.\"))

break;

}

既然这样,服务器将在回复的时候复制所有来到的信息,直到它收到字符串“Bye”。只要服务器与客户端一直在相互通信,服务器就要从socket中读取信息,并将信息写回socket,就这样在服务器和客户端之间来来回回的发送消息。在这之后,服务器将终止所有的流并终止连接。

ose();

ose();

ose();

ose();

客户端

当你开始写客户端程序的时候,服务器应该已经在运行了,并在监听端口等待客户端所发送的连接请求。客户端程序首先要做的就是打开socket使它与运行在主机的服务器和指定的端口进行连接。

import .*;

import .*;

theSocket = new Socket(\"\", 4444);

out = new PrintWriter(tOutputStream(), true);

in = new BufferedReader(new InputStreamReader(

tInputStream()));

当你运行这个程序的时候,在Socket构造器中将主机名改成你所在的络中的机器名。这个计算机是你运行服务器应用程序的地方。当使用socket进行通信时,这个程序也要指定端口号为4444。

这是一个远程端口号(例如:根据服务器端的端口数量选择),它也是服务器正在监听的端口。客户端的socket一定要是未被占用的任意端口(例如,在客户端计算机上的某个端口)。

下面是while循环,这个循环实现了客户端与服务器之间的通信。客户端应用程序将从键盘上读取输入信息(或者标准输入),同时也将这些信息发送给服务器,所以服务器将返回同样的字符串。

BufferedReader stdIn = new BufferedReader(

new InputStreamReader());

String userInput;

while ((userInput = adLine()) != null) {

if (uals(\"Bye.\"))

break;

intln(userInput);

intln(\"echo: \" + adLine());

}

注意,当服务器说“Bye”的时候,客户端应该终止连接。为了实现这个目的,在“Bye”传输到服务器并返回之后,你需要在客户端说同样的字符串。客户端必须关闭所有的流和连接。

ose();

ose();

ose();

ose();

结论

包为络编程提供了强大且灵活的组织结构。如果你想了解这个包中所提供的类的话,我建议你多引用这个包。

:德东

查看本文国际来源

广州妇科哪好
石家庄子宫内膜炎治疗费用多少钱
沈阳宫颈糜烂治疗费用
为你推荐