socket通信:一个最简单的Socket通信例子

        所谓通常也称作"套接字"用于描述IP地址和端口个通信链句柄应用通常通过"套接字"向网络发出请求或者应答网络请求
       Socket和ServerSocket类库位于java.net包中ServerSocket用于服务器端Socket是建立网络连接时使用在连接成功时应用两端都会产生个Socket例子操作这个例子完成所需会话对于个网络连接来说套接字是平等并没有差别在服务器端或在客户端而产生区别级别不管是Socket还是ServerSocket它们工作都是通过SocketImpl类及其子类完成 

        下面给出个最简单Socket通信例子供初学者参考:
        服务器端:ServerDemo.java
        Java代码 复制代码

    =dp-j>
  1. =keyword>package com.lanber.;   
  2.   
  3. =keyword>import java.io.DataInputStream;   
  4. =keyword>import java.io.DataOutputStream;   
  5. =keyword>import java.io.IOException;   
  6. =keyword>import java.net.ServerSocket;   
  7. =keyword>import java.net.Socket;   
  8.   
  9. =keyword>public =keyword> ServerDemo {   
  10.   
  11.     =comment>/**  
  12. =comment>     * 注意:Socket发送和接收是需要同步进行即客户端发送条信息服务器必需先接收这条信息  
  13. =comment>     *      而后才可以向客户端发送信息否则将会有运行时出错  
  14. =comment>     * @param args  
  15. =comment>     */  
  16.     =keyword>public =keyword> =keyword>void (String args) {   
  17.         ServerSocket ss = =keyword>null;   
  18.         =keyword>try {   
  19.             ss = =keyword> ServerSocket(=number>8888);   
  20.             =comment>//服务器接收到客户端数据后创建和此客户端对话Socket   
  21.             Socket  = ss.accept;   
  22.             =comment>//用于向客户端发送数据输出流   
  23.             DataOutputStream dos = =keyword> DataOutputStream(.getOutputStream);   
  24.             =comment>//用于接收客户端发来数据输入流   
  25.             DataInputStream dis = =keyword> DataInputStream(.getInputStream);   
  26.             .out.prln(=>"服务器接收到客户端连接请求:" + dis.readUTF);   
  27.             =comment>//服务器向客户端发送连接成功确认信息   
  28.             dos.writeUTF(=>"接受连接请求连接成功!");   
  29.             =comment>//不需要继续使用此连接时关闭连接   
  30.             .close;   
  31.             ss.close;   
  32.         } =keyword>catch (IOException e) {   
  33.             e.prStackTrace;   
  34.         }   
  35.     }   
  36.   
  37. }  

客户端:ClientDemo.java


Java代码 复制代码

    =dp-j>
  1. =keyword>package com.lanber.;   
  2.   
  3. =keyword>import java.io.DataInputStream;   
  4. =keyword>import java.io.DataOutputStream;   
  5. =keyword>import java.io.IOException;   
  6. =keyword>import java.io.OutputStream;   
  7. =keyword>import java.net.Socket;   
  8. =keyword>import java.net.UnknownHostException;   
  9.   
  10. =keyword>public =keyword> ClientDemo {   
  11.   
  12.     =comment>/**  
  13. =comment>     * @param args  
  14. =comment>     */  
  15.     =keyword>public =keyword> =keyword>void (String args) {   
  16.         Socket  = =keyword>null;   
  17.         =keyword>try {   
  18.              = =keyword> Socket(=>"localhost",=number>8888);   
  19.             =comment>//获取输出流用于客户端向服务器端发送数据   
  20.             DataOutputStream dos = =keyword> DataOutputStream(.getOutputStream);   
  21.             =comment>//获取输入流用于接收服务器端发送来数据   
  22.             DataInputStream dis = =keyword> DataInputStream(.getInputStream);   
  23.             =comment>//客户端向服务器端发送数据   
  24.             dos.writeUTF(=>"我是客户端请求连接!");   
  25.             =comment>//打印出从服务器端接收到数据   
  26.             .out.prln(dis.readUTF);   
  27.             =comment>//不需要继续使用此连接时记得关闭哦   
  28.             .close;   
  29.         } =keyword>catch (UnknownHostException e) {   
  30.             e.prStackTrace;   
  31.         } =keyword>catch (IOException e) {   
  32.             e.prStackTrace;   
  33.         }   
  34.     }   
  35.   
  36. }   


Tags:  socket例子 socket通信原理 javasocket通信 socket通信

延伸阅读

最新评论

发表评论