JAVA 与SOCKET通讯

先来看看客户段程序编写的流程:

  1、 首先调用Socket类的构造函数,以服务器的指定的IP地址或指定的主机名和指定的端口号为参数,创建一个Socket流,在创建Socket流的过程中包含了向服务器请求建立通讯连接的过程实现。

  2、 建立了客户端通讯Socket后。就可以使用Socket的方法getInputStream()和getOutputStream()来创建输入/输出流。这样,使用Socket类后,网络输入输出也转化为使用流对象的过程。

  3、 使用输入输出流对象的相应方法读写字节流数据,因为流连接着通讯所用的Socket,Socket又是和服务器端建立连接的一个端点,因此数据将通过连接从服务器得到或发向服务器。这时我们就可以对字节流数据按客户端和服务器之间的协议进行处理,完成双方的通讯任务。

  4、 待通讯任务完毕后,我们用流对象的close()方法来关闭用于网络通讯的输入输出流,在用Socket对象的close()方法来关闭Socket。

  下面,我想通过一个简单的例子来进一步介绍一下客户端程序的编写

  代码一:

  import java.io.*;

  import java.net.*;

  public class SocketCommunicationClient

  {

   public static void main(String[] args)

   {

   try{

   Socket clientSocket =new Socket ("mice",9000);//创建一个流Socket并与主机mice上的端口

9000相连接

   OutputStream output =clientSocket.getOutputStream();//向此Socket写入字节的一个输出流

   DataInputStream input=new DataInputStream(clientSocket.getInputStream());

   file://创建新的数据输入流以便从指定的输入流中读出数据

   int c;

   String response;

   while (( c= System.in.read())!=-1)//从屏幕上接受输入的字符串,并且分解成一个个字符

    {

    output.write((byte)c);

    if(c=='/n')//如果字符为回车,则输出字符串缓冲

    {

     output.flush();

     response=input.readLine();

     System.out.println("Communication:"+response);

    }

   }

   output.close();

   input.close();

   clientSocket.close();

   } catch (Exception e){

    System.err.println("Exception :"+e);

   }

  }

  }

这个程序是一个非常的简单的数据通讯的例子,程序先创建了一个Socket并和主机mice上的端口9000相连

接,然后打开输入输出流,接着程序从标准输入接收字符并写入流中,每写满一行(以用户键入回车为标

志),就把缓冲区中的字符串送往mice上的服务器端程序进行处理,等待服务器端的应答。

input.readLine()方法调用将导致程序停滞直到收到应答信息,程序将一直重复这个过程,直到用户输入

中止符。最后程序要关闭socket输入输出流,在关闭socket和服务器端的连接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值