Java 中Socket的用法
来源:互联网 发布:校宝软件 编辑:程序博客网 时间:2024/06/05 09:53
普通Socket的用法
Java中的网络通信是通过Socket实现的
Socket分为两类:
- ServerSocket:用于服务端,可以通过accept方法监听请求,监听到请求后返回Socket。
- Socket:用于具体完成数据传输,客户端直接使用Socket发起请求并传输数据。
ServerSocket(服务端)
ServerSocket的使用可分为三步:
- 创建 ServerSocket。
- 调用创建出来的 ServerSocket 的 accept 方法进行监听。
- 使用 accept 方法返回的 Socket 与客户端进行通信。
Server.java
package com.jeiker.demo;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;/** * @author : xiao * @date : 17/10/22 下午3:09 * @description : Socket 服务端程序 */public class Server { public static void main(String srgs[]){ try { // 创建一个ServerSocket监听8080端口 ServerSocket serverSocket = new ServerSocket(8888); // 等待请求 Socket socket = serverSocket.accept(); // 接收到请求后使用 socket 进行通信,创建 BufferedReader 用于读取数据 BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream())); String line = is.readLine(); System.out.println("received from client: " + line); // 创建 PrintWriter 用于发送数据 PrintWriter pw = new PrintWriter(socket.getOutputStream()); pw.println("received data: " + line); pw.flush(); // 关闭资源,注意顺序 pw.close(); is.close(); socket.close(); serverSocket.close(); } catch (Exception e) { e.printStackTrace(); } }}
Socket(客户端)
ServerSocket的使用可分为三步:
- 创建 ServerSocket。
- 调用创建出来的 ServerSocket 的 accept 方法进行监听。
- 使用 accept 方法返回的 Socket 与客户端进行通信。
Client.java
package com.jeiker.demo;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.Socket;/** * @author : xiao * @date : 17/10/22 下午3:34 * @description : Socket 客户端程序 */public class Client { public static void main(String args[]) { String msg = "Client Data"; try { // 创建一个Socket,跟本机的8080端口连接 Socket socket = new Socket("localhost", 8888); // 使用Socket 创建PrintWriter和BufferedReader进行读写数据 PrintWriter pw = new PrintWriter(socket.getOutputStream()); BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream())); // 发送数据 pw.println(msg); pw.flush(); // 接收数据 String line = is.readLine(); System.out.println("received from server: " + line); // 关闭资源 pw.close(); is.close(); socket.close(); } catch (Exception e) { e.printStackTrace(); } }}
运行
先启动 Server,再运行 Client 。
阅读全文
0 0
- Java中Socket的用法
- Java 中Socket的用法
- Java中Socket的用法--Spring MVC
- java socket的用法
- java网络编程Socket中SO_LINGER选项的用法解读
- java中ServerSocket和Socket的简单用法
- java网络编程Socket中SO_LINGER选项的用法解读
- 拿来主义:java中socket和serversocket 的用法
- java网络编程Socket中SO_LINGER选项的用法解读
- java中ServerSocket 与 Socket的用法和区别
- (二)Java中Socket的用法-读书笔记
- Socket中select()的用法
- Java中的Socket的用法
- Java中的Socket的用法
- Java NIO操作Socket的用法
- java中socket的使用
- JAVA Socket用法详解
- java Socket用法详解
- 设计模式【空对象模式NullObjectPattern】
- 个在 Android 上实现录像和录音功能的小例子。
- SQLite 命令
- java se--8.多线程-2.创建线程和常用方法
- MySQL半同步复制--master dump线程2
- Java 中Socket的用法
- Universal-CollapsingTabLayout
- 变量属性(auto、register、static、extern)
- p59-4.1(2)
- DeepLearing学习笔记-改善深层神经网络(第三周作业-TensorFlow使用)
- 分页查询
- PixelSlide
- 文字存入mysql数据库时出现Incorrect string value错误
- python爬虫模拟登陆知乎网