| | | 浅谈Socket编程及Java实现 | | 2001-04-07·
·wayne··yesky
| 上一页 1 2 3 上面我们看了如何使用Java编写客户端的Socket接口程序,下面我也想简要的谈一谈服务器端的Socket接口程序的Java实现方法,其过程如下所述:
1、 首先调用ServerSocket类以某个端口号为参数,创建一个ServerSocket对象,即是服务器端的服务程序在该指定端口监听的Socket。
2、 服务器端程序使用ServerSocket对象的accept()方法,接收来自客户机程序的连接请求,此时服务器端将一直保持停滞状态,直到收到客户端发来的连接请求,此时该方法将返回一个新建的Socket类的实例,代表和客户机建立的通讯链路在服务程序内的通讯端点。如果采用Java的多线程编程方法,可以实现并发服务器,继续监听来自其他客户的连接请求。
3、 使用新建的Socket对象创建输入、输出流对象。
4、 使用流对象的方法完成和客户端的数据传输,按约定协议识别并处理来自客户端的请求数据,并把处理的结果返回给客户端。
5、 客户端工作完毕后,则服务器端程序关闭和客户端通讯的流和通讯的Socket。
6、 在服务器程序运行结束之间,应当关闭用来监听的Socket.
下面让我们来看一个服务器端的程序的Java实现:
代码二:
import java.net.*;
import java.io.*;
public class SocketCommunicationServer
{
public static void main(String[] args)
try
{
boolean flag=true;//设置标志位为真
Socket client=null;//创建Socket client以接收来自客户端的请求
String inputLine;
ServerSocket serverSocket =new ServerSocket (9000);//以端口9000创建一个服务器Socket
System.out.println("服务器在端口9000上监听");
file://也可以使用serverSocket.getLocalPort()来获得端口号
while(flag)
{
client=serverSocket.accept();
file://监听并接受与此Socket的连接,该方法会阻塞直到有一个连接产生
DataInputStream input=new DataInputStream(new BufferedInputStream(client.getInputStream()));
PrintStream output=new PrintStream(new BufferedOutputStream(client.getOutputStream());
while (( inputLine= input.readLine())!=null)
{
if(inputLine.equals("Stop"))
{
flag=false;
break;
}
output.println(inputLine);
output.flush();
}
output.close();
input.close();
client.close();
}
serverSocket.close();
}catch(IOException e){}
}
}
}
以上,我简略的谈了一下Socket编程的机制以及使用Java进行Socket编程的实现方法,希望能对大家有所帮助。
上一页 1 2 3 | | | 感谢
访问天极网,如果您觉得该文章涉及版权问题,请看这里!
|
|