Java Socket

来源:互联网 发布:2016中国服务贸易数据 编辑:程序博客网 时间:2024/06/05 07:42
1.服务端代码:  2.--------------========================================================  3.package com.tw.socke.server;  4.  5.import java.io.DataInputStream;  6.import java.io.DataOutputStream;  7.import java.io.IOException;  8.import java.net.ServerSocket;  9.import java.net.Socket;  10.  11./** 12. * <p>服务端简单演示(1) 13. *  简要说明socket: 14. *  所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。 15.        应用程序通常通过"套接字"向网络发出请求或者应答网络请求。  16.        Socket和ServerSocket类库位于java.net包中。 17.        ServerSocket用于服务器端,Socket是建立网络连接时使用的。 18.        在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。 19.        对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。 20.        不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的 21. * </p> 22. * @author tw 2009-05-08 23. *  24. * 25. */  26.public class SockeServer_demo_1 {  27.  28.    /** 29.     * 注意:Socket的发送与接收是需要同步进行的,即客户端发送一条信息,服务器必需先接收这条信息, 30.     *      而后才可以向客户端发送信息,否则将会有运行时出错。 31.     * @param args 32.     */  33.    public static void main(String[] args) {  34.        // TODO Auto-generated method stub  35.          36.        ServerSocket ss = null;  37.        try {  38.            ss = new ServerSocket(8888);  39.            //服务器接收到客户端的数据后,创建与此客户端对话的Socket  40.            Socket socket = ss.accept();  41.            //用于向客户端发送数据的输出流  42.            DataOutputStream dos = new DataOutputStream(socket.getOutputStream());  43.            //用于接收客户端发来的数据的输入流  44.            DataInputStream dis = new DataInputStream(socket.getInputStream());  45.            System.out.println("服务器接收到客户端的连接请求:" + dis.readUTF());  46.            //服务器向客户端发送连接成功确认信息  47.            dos.writeUTF("接受连接请求,连接成功!");  48.            //不需要继续使用此连接时,关闭连接  49.            socket.close();  50.            ss.close();  51.        } catch (IOException e) {  52.            e.printStackTrace();  53.        }  54.    }  55.}  56.  57.  58.  59.客户端代码:  60.-----------------------------------------------------------  61.package com.tw.socke.client;  62.  63.import java.io.DataInputStream;  64.import java.io.DataOutputStream;  65.import java.io.IOException;  66.import java.net.Socket;  67.import java.net.UnknownHostException;  68./** 69. * <p>客户端简单演示(1) 70. *  简要说明socket: 71. *  所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。 72.        应用程序通常通过"套接字"向网络发出请求或者应答网络请求。  73.        Socket和ServerSocket类库位于java.net包中。 74.        ServerSocket用于服务器端,Socket是建立网络连接时使用的。 75.        在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。 76.        对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。 77.        不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的 78. * </p> 79. * @author tw 2009-05-08 80. *  81. * 82. */  83.public class SockeClient_demo_1 {  84.      85.    public static void main(String[] args) {  86.        // TODO Auto-generated method stub  87.        Socket socket = null;  88.        try {  89.            socket = new Socket("localhost",8888);  90.            //获取输出流,用于客户端向服务器端发送数据  91.            DataOutputStream dos = new DataOutputStream(socket.getOutputStream());  92.            //获取输入流,用于接收服务器端发送来的数据  93.            DataInputStream dis = new DataInputStream(socket.getInputStream());  94.            //客户端向服务器端发送数据  95.            dos.writeUTF("我是客户端,请求连接!");  96.            //打印出从服务器端接收到的数据  97.            System.out.println(dis.readUTF());  98.            //不需要继续使用此连接时,记得关闭哦  99.            socket.close();  100.        } catch (UnknownHostException e) {  101.            e.printStackTrace();  102.        } catch (IOException e) {  103.            e.printStackTrace();  104.        }  105.    }  106.  107.}  


 

原创粉丝点击