当前位置: 首页 > ai >正文

JAVA—socket编程

一、什么是socket编程

socket编程,是在不同的进程间进行网络通讯的一种编程技术,在socket编程中基于TCP、UDP等协议做的一层封装,是一套系统所提供的的用于进行网络通信的编程接口。

二、 java实现socket代码

客户端java代码:

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;public class TcpSocketClient {/*** 客户端程序*/public void client() throws IOException {Scanner scanner = new Scanner(System.in);System.out.println("等待连接服务端!");Socket socket = new Socket("127.0.0.1", 2111);System.out.println("连接服务端成功!");while (true) {// 给服务端发信息System.out.print("请输入:");String s = scanner.next();if ("out".equals(s)) {break;}OutputStream outputStream = socket.getOutputStream();outputStream.write(s.getBytes(StandardCharsets.UTF_8));byte[] bytes = new byte[1024];// 读一下服务端发来的信息InputStream inputStream = socket.getInputStream();int read = inputStream.read(bytes);System.out.println("服务端:" + new String(bytes, 0, read, Charset.defaultCharset()));}}public static void main(String[] args) throws IOException {TcpSocketClient tcpSocketServer = new TcpSocketClient();tcpSocketServer.client();}
}

 服务端java代码:

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;public class TcpSocketServer {/*** 服务端程序*/public void server() throws IOException {Scanner scanner = new Scanner(System.in);// 服务端监听 1111 端口ServerSocket serverSocket = new ServerSocket(1111);System.out.println("等待连接");Socket client = serverSocket.accept();System.out.println("连接成功!");while (true) {// 获取客户端输入流InputStream inputStream = client.getInputStream();byte[] bytes = new byte[1024];int read = inputStream.read(bytes);// 客户端发来的消息System.out.println("客户端:" + new String(bytes, 0, read, Charset.defaultCharset()));// 给客户端发端消息System.out.print("请输入:");String nextLine = scanner.next();if ("out".equals(nextLine)) {break;}client.getOutputStream().write(nextLine.getBytes(StandardCharsets.UTF_8));}}public static void main(String[] args) throws IOException {TcpSocketServer tcpSocketServer = new TcpSocketServer();tcpSocketServer.server();;}
}

三、socket测试流程分析

先启动服务端server,再启动客户端client,等待提示连接成功后就可以测试发信息了

 server启动连接:

  client启动连接:

 流程分析:

http://www.xdnf.cn/news/10967.html

相关文章:

  • Logo1_.exe 木马/病毒的清除和免疫
  • ARM的LCD控制寄存器和原理(抖动算法和FRC)
  • requests爬虫实践之安居客二手房屋数据(python实现)
  • 还在直接用localStorage么?全网最细:本地存储二次封装(含加密、解密、过期处理)
  • ARM 架构硬件新趋势:嵌入式领域的未来
  • 富文本编辑器:自己实现图片上传功能和图片粘贴上传(kindeditor)
  • 电脑蓝屏代码0x00000050怎么解决?3种方法快速解决
  • 【小程序】微信开发者工具——盘古开天
  • python怎么写二进制文件需要更新_Python文件迭代器对二进制文件的更新
  • Android系统的开机画面显示过程分析
  • ubuntu软件更新源,更改,可提高更新的速度
  • [经验技巧] 小米 MIUI V4 系统精简列表
  • mysql虚拟主机_远程连接mysql要点 虚拟主机定义与分类
  • QQ技术全攻略(原来简单的QQ,还隐藏着这么多秘密!)
  • 四个福利性在线网站分享,每一个都让你欲罢不能……
  • 单词学习-Unit2Text4-1(15年8月10日,第20天)
  • HTML5 文件上传的2种方式
  • 中国石油大学《大学英语(三)统考》第七套模拟题
  • FreeTextBox使用方法
  • 面试时最经常被问到的问题(Frenquently asked interview questions)(I)
  • cmos和ccd区别对比
  • 魔兽世界经典旧世私服搭建教程
  • Linux 网络通信瑞士军刀 nc 命令使用
  • rails + devise 用户注册登录及权限判断
  • 解析网页的request header
  • A站、B站、C站、D站、E站、F站、G站、H站、I站、J站、K站、L站、M站、N站、O站、P站、Q站、R站、S站、T站、U站、V站、W站、X站、Y站、Z站都是什么网站?Q站是什么?
  • Quality Center介绍
  • centos7安装dzzoffice和OnlyOffice 安装过程和踩坑出坑!
  • c语言中 5.1lf什么意思,期货股指lf_中金所期货指数IF、IH、IC分别是什么英文单词的缩写_期货攻略网...
  • awk从放弃到入门(9):awk数组详解