当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:15:00  来源:本站整理

操作Socket举行Java网络编程[Java编程]

赞助商链接



  本文“操作Socket举行Java网络编程[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

Socket是网络上运行的两个程序间双向通讯的一端,它既可以承受恳求,也可以发送恳求,操纵它可以较为便利的编写网络上数据的传送.在Java中,有专门的Socket类来处理用户的恳求和呼应.操纵Socket类的办法,便可以实现两台计算机之间的通讯.这里就介绍一下在Java中若何操纵Socket举行网络编程.

在Java中Socket可以理解为客户端大概服务器端的一个特别的对象,这个对象有两个关键的办法,一个是getInputStream办法,另一个是getOutputStream办法.getInputStream办法可以得到一个输入流,客户端的Socket对象上的getInputStream办法得到的输入流其实就是从服务器端发回的数据流.GetOutputStream办法得到一个输出流,客户端Socket对象上的getOutputStream办法返回的输出流就是将要发送到服务器端的数据流,(其实是一个缓冲区,暂时存储将要发送过去的数据).

程序可以对这些数据流按照需求举行进一步的封装.本文的例子就对这些数据流举行了一定的封装(关于封装可以参考Java中流的实现部份).

为了更好的阐明问题,这里举了一个网上对话的例子,客户端启动今后,服务器会启动一个线程来与客户举行文字交流.

要完成这个工作,需求完成三个部份的工作,以下顺次阐明:

1、成立服务器类

Java中有一个专门用来成立Socket服务器的类,名叫ServerSocket,可以用服务器需求利用的端口号作为参数来成立服务器对象.

ServerSocket server = new ServerSocket(9998)

这条语句成立了一个服务器对象,这个服务器利用9998号端口.当一个客户端程序成立一个Socket衔接,所衔接的端口号为9998时,服务器对象server便呼应这个衔接,并且server.accept()办法会成立一个Socket对象.服务器端便可以操纵这个Socket对象与客户举行通讯.

Socket incoming = server.accept()

进而得到输入流和输出流,并举行封装

BufferedReader in = new BufferedReader(new
       InputStreamReader(incoming.getInputStream()));
PrintWriter out = new PrintWriter(incoming.getOutputStream(),true);

随后,便可以利用in.readLine()办法得到客户端的输入,也可以利用out.println()办法向客户端发送数据.从而可以按照程序的需求对客户端的差别恳求举行回应.

在全部通讯完毕今后应当关闭这两个数据流,关闭的次序是先关闭输出流,再关闭输入流,即便用

out.close();
in.close();

2、成立客户端代码

相比服务器端,客户端要简单一些,客户端只需用服务器所在机械的ip以及服务器的端口作为参数成立一个Socket对象.得到这个对象后,便可以用"成立服务器"部份介绍的办法实现数据的输入和输出.

Socket socket = new Socket("168.160.12.42",9998);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(),true);

以上的程序代码成立了一个Socket对象,这个对象衔接到ip地址为168.160.12.42的主机上、端口为9998的服务器对象.并且成立了输入流和输出流,辨别对应服务器的输出和客户端的写入.


  以上是“操作Socket举行Java网络编程[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 操作Socket举行Java网络编程
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .