《javasocket通信实例说明》由会员分享,可在线阅读,更多相关《javasocket通信实例说明(8页珍藏版)》请在金锄头文库上搜索。
1、java Socket通信(一) http:/ socket通信已经被封装好了主要使用两个类ServerSocket 和Socket首先写一个1v1的通信一、服务端java view plaincopyprint?/* * */package com.dnion.socket;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import
2、.ServerSocket;import .Socket;/* * * 项目名称:JavaThread * 程序名称:JabberServer * 日期:2012-8-23 上午11:36:12 * 作者: * 模块: * 描述: * 备注: * - * 修改历史 * 序号 日期 修改人 修改原因 * * 修改备注: * version * */public class JabberServer public static int PORT = 8080;public static void main(String agrs) ServerSocket s = null;Socket sock
3、et = null;BufferedReader br = null;PrintWriter pw = null;try /设定服务端的端口号s = new ServerSocket(PORT);System.out.println(ServerSocket Start:+s);/等待请求,此方法会一直阻塞,直到获得请求才往下走socket = s.accept();System.out.println(Connection accept socket:+socket);/用于接收客户端发来的请求br = new BufferedReader(new InputStreamReader(soc
4、ket.getInputStream();/用于发送返回信息,可以不需要装饰这么多io流使用缓冲流时发送数据要注意调用.flush()方法pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),true);while(true)String str = br.readLine();if(str.equals(END)break;System.out.println(Client Socket Message:+str);Thread.sleep(1000);pw.printl
5、n(Message Received);pw.flush(); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace();finallySystem.out.println(Close.);try br.close();pw.close();socket.close();s.close(); catch (Exception e2) 二、客户端/* * */package com.dnion.socket;import java.io.BufferedReader;import java.io.Buffer
6、edWriter;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import .ServerSocket;import .Socket;/* * * 项目名称:JavaThread * 程序名称:JabberServer * 日期:2012-8-23 上午11:36:12 * 作者: * 模块: * 描述: * 备注: * - * 修改历史 * 序号 日期 修改人 修改原因 * * 修改备注: * version * */public class Jab
7、berServer public static int PORT = 8080;public static void main(String agrs) ServerSocket s = null;Socket socket = null;BufferedReader br = null;PrintWriter pw = null;try /设定服务端的端口号s = new ServerSocket(PORT);System.out.println(ServerSocket Start:+s);/等待请求,此方法会一直阻塞,直到获得请求才往下走socket = s.accept();Syste
8、m.out.println(Connection accept socket:+socket);/用于接收客户端发来的请求br = new BufferedReader(new InputStreamReader(socket.getInputStream();/用于发送返回信息,可以不需要装饰这么多io流使用缓冲流时发送数据要注意调用.flush()方法pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),true);while(true)String str = br.
9、readLine();if(str.equals(END)break;System.out.println(Client Socket Message:+str);Thread.sleep(1000);pw.println(Message Received);pw.flush(); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace();finallySystem.out.println(Close.);try br.close();pw.close();socket.close();s.close();
10、 catch (Exception e2) 客户端 java view plaincopyprint?/* * */package com.dnion.socket;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import .Socket;/* * * 项目名称:JavaThrea
11、d 程序名称:JabberClient 日期:2012-8-23 下午01:47:12 * 作者: * 模块: * 描述: * 备注: * - * 修改历史 * 序号 * 日期 * 修改人 * 修改原因 * 修改备注: * * version * */public class JabberClient /* * 方法名:main 描述: 作者:白鹏飞 日期:2012-8-23 下午01:47:12 * * param param args * return void */public static void main(String args) Socket socket = null;BufferedReader br = null;PrintWriter pw = null;try /客户端socket指定服务器的地址和端口号socket = new Socket(127.0.0.1, JabberServer.PORT);System.out.println(Socket= + socket);/同服务器原理一样br