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();
  }
}
目录
相关文章
|
8月前
|
网络协议 安全 网络安全
Python网络编程详解:Socket套接字的使用与开发
探索Python网络编程:本文详述Socket套接字,关键组件用于设备间通信。理解Socket类型(TCP/UDP),学习创建、绑定、监听、发送/接收数据步骤。示例展示服务端和客户端实现,及Socket聊天室应用。了解并发处理、错误处理和网络安全。通过学习,提升网络应用开发技能。参考书籍深入学习。
184 2
|
8月前
|
网络协议 Python
Python网络编程基础(Socket编程)创建UDP socket对象
【4月更文挑战第8天】在Python中创建UDP服务器涉及使用`socket`模块创建socket对象,如`udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)`,然后绑定到特定IP地址和端口,如`udp_socket.bind(('localhost', 12345))`。服务器通过`recvfrom`在无限循环中监听和接收数据报。这只是基础,实际应用还需处理接收、解析、响应及错误处理等。接下来可学习如何利用socket对象进行数据交互以构建完整服务器。
|
存储 网络协议 Unix
网络基础:socket套接字
网络基础:socket套接字
105 0
|
网络协议 Java
DatagramSocket和Socket的区别及使用场景
DatagramSocket和Socket这两个类。它们分别基于UDP和TCP协议,提供了不同的特性和适用场景
205 1
|
网络协议
socket聊天室--socket的建立
socket聊天室--socket的建立
105 0
|
8月前
|
网络协议 Linux 定位技术
网络编程函数小总结与初识socket
总结服务器端的函数和客户端的函数 再次声明博主写的都是对于linux下的网络编程,没有写关于Windows的网络编程,也许以后会写到。 这里只是总结一下,具体参数的含义等后面的跟新
76 0
|
网络协议 Python
140 python网络编程 - socket简介
140 python网络编程 - socket简介
59 0
|
设计模式 网络协议 小程序
Socket 案例
Socket 案例
113 4
Socket 案例
|
移动开发 网络协议 Linux
网络编程及socket模块(2)
网络编程及socket模块(2)
网络编程及socket模块(2)
|
域名解析 缓存 网络协议
网络编程及socket模块(1)
网络编程及socket模块(1)
网络编程及socket模块(1)

热门文章

最新文章