Server Socket通信简单的实例分析

 我来答
长青数码
2022-11-25 · TA获得超过2640个赞
知道小有建树答主
回答量:552
采纳率:100%
帮助的人:82.5万
展开全部

  Server Socket <>通信一直在不断的进行相关的测试 在不断的使用中有很多的问题存在 其实有不少的问题在源代码中就能找打答案 所谓Server Socket通信通常也称作 套接字 用于描述IP地址和端口 是一个通信链的句柄 应用程序通常通过 套接字 向网络发出请求或者应答网络请求

  Socket和ServerSocket类库位于包中 Server Socket用于服务器端 Server Socket通信是建立网络连接时使用的 在 连接成功时 应用程序两端都会产生一个Socket实例 操作这个实例 完成所需的会话 对于一个网络连接来说 套接字是平等的 并没有差别 不因为在服 务器端或在客户端而产生不同级别 不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的

  下面给出一个最简单的Server Socket通信的例子供初学者参考

  服务器端 ServerDemo java

  Java代码

   package lanber socket;

   import java io DataInputStream;

   import java io DataOutputStream;

   import java io IOException;

   import ServerSocket;

   import Socket;

   public class ServerDemo {

   /**

   * 注意 Socket的发送与接收是需要同步进行的 即客户端发送一条信息 服务器必需先接收这条信息

   * 而后才可以向客户端发送信息 否则将会有运行时出错

   * @param args

   */

   public static void main(String[] args) {

   ServerSocket ss = null;

   try {

   ss = new ServerSocket( );

   //服务器接收到客户端的数据后 创建与此客户端对话的Socket

   Socket socket = ss accept();

   //用于向客户端发送数据的输出流

   DataOutputStream dos = new DataOutputStream(socket getOutputStream());

   //用于接收客户端发来的数据的输入流

   DataInputStream dis = new DataInputStream(socket getInputStream());

   System out println( 服务器接收到客户端的连接请求 + dis readUTF());

   //服务器向客户端发送连接成功确认信息

   dos writeUTF( 接受连接请求 连接成功! );

   //不需要继续使用此连接时 关闭连接

   socket close();

   ss close();

   } catch (IOException e) {

   e printStackTrace();

   }

   }

   }

  Server Socket通信客户端 ClientDemo java

  Java代码

   package lanber socket;

   import java io DataInputStream;

   import java io DataOutputStream;

   import java io IOException;

   import java io OutputStream;

   import Socket;

   import UnknownHostException;

   public class ClientDemo {

   /**

   * @param args

   */

   public static void main(String[] args) {

   Socket socket = null;

   try {

   socket = new Socket( localhost );

   //获取输出流 用于客户端向服务器端发送数据

   DataOutputStream dos = new DataOutputStream(socket getOutputStream());

   //获取输入流 用于接收服务器端发送来的数据

   DataInputStream dis = new DataInputStream(socket getInputStream());

   //客户端向服务器端发送数据

   dos writeUTF( 我是客户端 请求连接! );

   //打印出从服务器端接收到的数据

   System out println(dis readUTF());

   //不需要继续使用此连接时 记得关闭哦

   socket close();

   } catch (UnknownHostException e) {

   e printStackTrace();

   } catch (IOException e) {

   e printStackTrace();

   }

   }

   }

lishixinzhi/Article/program/Java/hx/201311/25808

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式