基于Socket的JAVA网络编程

来源:互联网 发布:黑马程序员就业情况 编辑:程序博客网 时间:2024/05/03 02:50

Socket通信机制:

   使用Socket进行Client/Server程序设计一般连接过程如下:

   1.创建Socket。

   2.打开连接到Socket的输入/输出流。

   3.按照一定的协议对Socket进行读/写操作。

   4.关闭Socket。

    注:第3步是程序员来调用Socket和实现程序功能的关键步骤,其他3步在各种程序中基本相同。


简易通信程序设计:


                            ①、客户端                                                            ②、服务端

二、客户端Socket

  

public class TalkClient {public static void main(String[] args) {try{Socket socket=new Socket("127.0.0.1", 4700);//向本机的4700端口发送求情BufferedReader br=new BufferedReader(new InputStreamReader(System.in));//由系统标准输入设备构造BufferedReader堆箱,用来接收我们输入的Client消息PrintWriter pt=new PrintWriter(socket.getOutputStream());//由Socket堆箱得到输出流BufferedReader bb=new BufferedReader(new InputStreamReader(socket.getInputStream()));//由Socket对象输入流String line;line=br.readLine();while(!line.equals("byebye")){//若从标准系统输入读入的字符串为"byebye",则循环停止pt.println(line);pt.flush();//刷新输出流,使Server可以马上收到字符串System.out.println("客户端:"+line);System.out.println("服务端:"+bb.readLine());line=br.readLine();//从系统标准输入读入字符串}bb.close();//关闭输入流pt.close();//关闭输出流socket.close();//关闭Socket}catch(Exception e){System.out.println("错误"+e);}}}

三、服务端ServerSocket(重新创建一个JAVA工程)

public class TalkServer {public static void main(String[] args) {try{ServerSocket server=null;try{server=new ServerSocket(4700);//创建一个ServerSocket监听端口为4700的客户请求}catch(Exception e){System.out.println("不能监听:"+e);}Socket socket=null;try{socket=server.accept();//使用accept()阻塞等待客户请求,//求情到来就产生一个Socket,并继续执行}catch(Exception e){System.out.println("错误:"+e);}BufferedReader br=new BufferedReader(new InputStreamReader(System.in));BufferedReader bb=new BufferedReader(new InputStreamReader(socket.getInputStream()));PrintWriter pt=new PrintWriter(socket.getOutputStream());System.out.println("客户端:"+bb.readLine());//在标准输入上打印出从客服端读入的字符串String line;line=br.readLine();//从标准输入读入一行字符串while(!line.equals("byebye")){pt.println(line);pt.flush();System.out.println("服务端:"+line);//在标准输入上打印出读入的字符串System.out.println("客户端:"+bb.readLine());//从Client读入一行字符串,并打印在标准输出上line=br.readLine();}bb.close();pt.close();socket.close();server.close();}catch(Exception e){System.out.println("错误"+e);}}}





1 0
原创粉丝点击