zoukankan      html  css  js  c++  java
  • java 网络编程之Socket编程

     

     1.客户端代码

     1 package com.gylhaut.socket;
     2 
     3 import java.io.BufferedReader;
     4 import java.io.IOException;
     5 import java.io.InputStream;
     6 import java.io.InputStreamReader;
     7 import java.io.OutputStream;
     8 import java.io.PrintWriter;
     9 import java.net.Socket;
    10 import java.net.UnknownHostException;
    11 
    12 /**
    13  * 
    14  * 客户端Socket
    15  *
    16  */
    17 public class Client {
    18     public static void main(String[] args) {
    19         try {
    20             //1.创建客户端Socket, 指定服务器地址和端口
    21             Socket socket = new Socket("localhost",8888);
    22             //2.获取输出流,向服务器端发送信息
    23             OutputStream os =socket.getOutputStream();//字节输出流
    24             PrintWriter pw = new PrintWriter(os);//将输出流包装为打印流
    25             pw.write("用户名:admin; 密码:123");
    26             pw.flush();
    27             socket.shutdownOutput();//关闭输出流
    28             String info = null;
    29             InputStream is = socket.getInputStream();
    30             InputStreamReader isr = new InputStreamReader(is);
    31             BufferedReader bReader = new BufferedReader(isr);
    32             while ((info = bReader.readLine())!= null) {//循环读取客户端信息
    33                 System.out.println("我是客户端,服务器说:"+ info);
    34             }
    35             //
    36             bReader.close();
    37             isr.close();
    38             is.close();
    39             pw.close();
    40             os.close();
    41             socket.close();
    42         } catch (UnknownHostException e) {
    43             e.printStackTrace();
    44         } catch (IOException e) {
    45             e.printStackTrace();
    46         }
    47     }
    48 }
    View Code

    2.服务端代码

     1 package com.gylhaut.socket;
     2 
     3 import java.io.BufferedReader;
     4 import java.io.IOException;
     5 import java.io.InputStream;
     6 import java.io.InputStreamReader;
     7 import java.io.OutputStream;
     8 import java.io.PrintWriter;
     9 import java.net.ServerSocket;
    10 import java.net.Socket;
    11 /*
    12  * 基于TCP协议的Socket通信,实现用户登录
    13  * 服务器端
    14  */
    15 public class Server {
    16     public static void main(String[] args){
    17         try {
    18             //1.创建一个服务器端的Socket,即ServerSocket,指定绑定的端口,并监听客户端
    19             ServerSocket serverSocket = new ServerSocket(8888);
    20             //2.调用accept()方法开始监听,等待客户端的连接
    21             System.out.println("***服务器即将启动,等待客户端的连接***");
    22             Socket socket = serverSocket.accept();
    23             //3.获取输入流,并读取客户端信息
    24             InputStream is = socket.getInputStream();//字节输入流
    25             InputStreamReader isr = new InputStreamReader(is);//将字节流转换为字符流
    26             BufferedReader bReader = new BufferedReader(isr);
    27             String info = null;
    28             while ((info = bReader.readLine())!= null) {//循环读取客户端信息
    29                 System.out.println("我是服务器,客户端说:"+ info);
    30             }
    31             socket.shutdownInput();//关闭输入流
    32             //4.获取输出流,响应客户端的请求
    33             OutputStream os = socket.getOutputStream();
    34             PrintWriter pWriter = new PrintWriter(os);//包装为打印流
    35             pWriter.write("欢迎您!");
    36             pWriter.flush();//调用flush 方法将刷新缓存
    37             
    38             //5.关闭资源
    39             pWriter.close();
    40             os.close();
    41             bReader.close();
    42             isr.close();
    43             is.close();
    44             socket.close();
    45             serverSocket.close();
    46         } catch (IOException e) {
    47             e.printStackTrace();
    48         }
    49     }
    50 }
    View Code
  • 相关阅读:
    模拟展示动态按钮
    模拟界面请求到web服务器
    bean的生命周期
    structs2的action实现方式
    annotation中的Autowired
    华为笔试题练习
    开发工具
    [转]Linux双向链表的知识
    【转】 嵌入式C语言编程中Inline函数的应用
    打印格式化printf
  • 原文地址:https://www.cnblogs.com/gylhaut/p/5270012.html
Copyright © 2011-2022 走看看