Socket基础使用

简介: Socket基础使用

客户端


向服务器端发数据并且接收服务器的响应


package com.imooc.myFirestSocket;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
public class Client {
  public static void main(String[] args) throws Exception {
    // 创建一个socket对象
    Socket socket = new Socket("localhost", 8888);
    // 获得输出流
    OutputStream os = socket.getOutputStream();
    // 写入数据
    PrintWriter pw = new PrintWriter(os);
    pw.write("用户名:admin,密码:123");
    pw.flush();
    // 关闭输出流
    socket.shutdownOutput();
    //---->下面是接受服务器发来的响应
    // 从socket中读数据
    InputStream is = socket.getInputStream();
    InputStreamReader isr = new InputStreamReader(is);
    BufferedReader bs = new BufferedReader(isr);
    String str = "";
    while ((str = bs.readLine()) != null) {
      System.out.println("我是客户端,服务器回应说:" + str);
    }
    // 关闭输入流
    socket.shutdownInput();
    // 关闭输入流资源
    bs.close();
    isr.close();
    is.close();
    // 关闭输出流资源
    pw.close();
    os.close();
  }
}


服务器端


接收客户端的请求并且响应


package com.imooc.myFirestSocket;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date;
public class Server {
  public static void main(String[] args) throws Exception {
    // 创建一个serverSocket对象,相当于服务器,并且自己设定端口,最好设置1024以后
    ServerSocket serverSocket = new ServerSocket(8888);
    // 调用accept方法监听访问的Socket
    Socket socket = serverSocket.accept();
    // 从socket中读数据
    InputStream is = socket.getInputStream();
    InputStreamReader isr = new InputStreamReader(is);
    BufferedReader bs = new BufferedReader(isr);
    String str = "";
    while ((str = bs.readLine()) != null) {
      System.out.println("我是服务器,客户端说:" + str);
    }
    // 关闭输入流
    socket.shutdownInput();
    //---->下面是服务器响应客户端
    // 获得输出流
    OutputStream os = socket.getOutputStream();
    // 写入数据
    PrintWriter pw = new PrintWriter(os);
    pw.write("欢迎您:"+new Date().toString());
    pw.flush();
    // 关闭输出流资源
    socket.shutdownOutput();
    pw.close();
    os.close();
    // 关闭输入流资源
    bs.close();
    isr.close();
    is.close();
  }
}
目录
相关文章
|
存储 网络协议 Unix
网络基础:socket套接字
网络基础:socket套接字
93 0
|
网络协议 Java
DatagramSocket和Socket的区别及使用场景
DatagramSocket和Socket这两个类。它们分别基于UDP和TCP协议,提供了不同的特性和适用场景
161 1
|
网络协议
socket聊天室--socket的建立
socket聊天室--socket的建立
99 0
|
6月前
|
网络协议 Linux 定位技术
网络编程函数小总结与初识socket
总结服务器端的函数和客户端的函数 再次声明博主写的都是对于linux下的网络编程,没有写关于Windows的网络编程,也许以后会写到。 这里只是总结一下,具体参数的含义等后面的跟新
70 0
|
设计模式 网络协议 小程序
Socket 案例
Socket 案例
108 4
Socket 案例
|
存储 缓存 网络协议
【Java网络编程】Socket套接字
哈喽,大家好~我是你们的老朋友:保护小周ღ,本期为大家带来的是网络编程的前提概念 Socket 套接字,操作系统提供Socket 用于封装底层的协议细节和通信逻辑,使应用程序可以通过简单直观的API与网络进行交互。所以客观的角度讲基于Socket 套接字开发,就是网络编程。概念篇~~ 更多精彩敬请期待:保护小周ღ *★,°*:.☆( ̄▽ ̄)/$:*.°★* ‘
158 0
|
域名解析 缓存 网络协议
网络编程及socket模块(1)
网络编程及socket模块(1)
网络编程及socket模块(1)
|
移动开发 网络协议 Linux
网络编程及socket模块(2)
网络编程及socket模块(2)
网络编程及socket模块(2)
|
消息中间件 网络协议 Unix
socket概念
socket概念
247 0
|
网络协议 Unix Linux
【Socket】Socket相关概念及函数
【Socket】Socket相关概念及函数
【Socket】Socket相关概念及函数