Java实现socket编程案例

以下是一个基本的Java socket编程案例:

服务端代码:

import java.net.*;
import java.io.*;public class Server {public static void main(String[] args) throws IOException {ServerSocket serverSocket = null;try {serverSocket = new ServerSocket(8080);} catch (IOException e) {System.err.println("Could not listen on port: 8080.");System.exit(1);}Socket clientSocket = null;try {System.out.println("Waiting for connection.....");clientSocket = serverSocket.accept();System.out.println("Connection successful");} catch (IOException e) {System.err.println("Accept failed.");System.exit(1);}PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));String inputLine;while ((inputLine = in.readLine()) != null) {System.out.println("Server: " + inputLine);out.println(inputLine);if (inputLine.equals("Bye."))break;}out.close();in.close();clientSocket.close();serverSocket.close();}
}

客户端代码:

import java.net.*;
import java.io.*;public class Client {public static void main(String[] args) throws IOException {Socket socket = null;PrintWriter out = null;BufferedReader in = null;try {socket = new Socket("localhost", 8080);out = new PrintWriter(socket.getOutputStream(), true);in = new BufferedReader(new InputStreamReader(socket.getInputStream()));} catch (UnknownHostException e) {System.err.println("Don't know about host: localhost.");System.exit(1);} catch (IOException e) {System.err.println("Couldn't get I/O for the connection to: localhost.");System.exit(1);}BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));String userInput;while ((userInput = stdIn.readLine()) != null) {out.println(userInput);System.out.println("Client: " + userInput);if (userInput.equals("Bye."))break;System.out.println("Server: " + in.readLine());}out.close();in.close();stdIn.close();socket.close();}
}

这个案例实现了一个简单的客户端和服务端之间的通信,客户端向服务端发送一条消息,服务端将其打印后返回给客户端。如果客户端发送了 "Bye.",则结束通信。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/238212.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C/C++ 内存管理(1)

文章目录 C/C 内存划分静态和动态内存C语言的动态内存分配函数mallocfreecallocrealloc 常见内存使用错误 C/C 内存划分 栈区(stack):在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结 束时这些存储…

Windows环境 dockertopdesk 部署gitlab

1.在dockertopdesk里搜索 gitlab镜像 (pull)拉取镜像 2.运行镜像到容器 mkdir gitlab gitlab/etc gitlab/log gitlab/opt docker run -id -p 3000:80 -p 9922:22 -v /root/gitlab/etc:/etc/gitlab -v /root/gitlab/log:/var/log/gitlab -v /root/gitlab/opt:/var/opt/gitla…

R语言实验三

1、读取一个文件并进行如下操作。 ①使用命令清空工作空间,使用read.table读取exam_1.txt文件,将文件保存到data变量中,数据第一行设置为列名,第一列是行名。 ②判断对象data是否为矩阵。 ③将对象转换为矩阵,记为d…

canvas基础:渲染文本

canvas实例应用100 专栏提供canvas的基础知识,高级动画,相关应用扩展等信息。 canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重要的帮助。 文章目录 示例…

视频后期特效处理软件 Motion 5 mac中文版

Motion mac是一款运动图形和视频合成软件,适用于Mac OS平台。 Motion mac软件特点 - 精美的效果:Motion提供了多种高质量的运动图形和视频效果,例如3D效果、烟雾效果、粒子效果等,方便用户制作出丰富多彩的视频和动画。 - 高效的工…

如何检查代理和防火墙设置

这样的错误可能会突然出现在个人计算机屏幕上,当访问您喜爱的网站时。这是什么原因,如何快速解决这个问题?我们将弄清楚如何检查。 关于访问问题 对网站的访问受阻实际上是一个非常常见的错误,它既可能是由于物理原因&#xff08…

【redis】[windows]redis安装以及配置等相关

前言:下载安装配置密码、远程访问等等 目录 一、下载 二、配置文件说明 1、bind 1.1 这个参数默认值是127.0.0.1,也就是只允许redis所在机器访问redis。 1.2 如果我们的应用服务和redis服务不在一个机器我们就需要修改这个参数为0.0.0.0&#xff0c…

JS逆向-mytoken之code参数

前言 本文是该专栏的第60篇,后面会持续分享python爬虫干货知识,记得关注。 本文以mytoken为例,通过js逆向获取其code参数的生成规律。具体的“逆向”思路逻辑,笔者将会详细介绍每个步骤,并且将在正文结合“完整代码”进行详细说明。 接下来,跟着笔者直接往下看正文详细…

SQL中left join、right join、inner join等的区别

一张图可以简洁明了的理解出left join、right join、join、inner join的区别: 1、left join 就是“左连接”,表1左连接表2,以左为主,表示以表1为主,关联上表2的数据,查出来的结果显示左边的所有数据&#…

经典神经网络——ResNet模型论文详解及代码复现

论文地址:Deep Residual Learning for Image Recognition (thecvf.com) PyTorch官方代码实现:vision/torchvision/models/resnet.py at main pytorch/vision (github.com) B站讲解: 【精读AI论文】ResNet深度残差网络_哔哩哔哩_bilibili …

一些ab命令

1.ab简介 ab是apache自带的压力测试工具,是apachebench命令的缩写。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器如nginx、tomcat、IIS等进行压力测试。 ab的原理:ab命令会创建多个并发…

使用Docker Compose搭建CIG监控平台

CIG简介 CIG监控平台是基于CAdvisor、InfluxDB和Granfana构建的一个容器重量级监控系统,用于监控容器的各项性能指标。其中,CAdvisor是一个容器资源监控工具,用于监控容器的内存、CPU、网络IO和磁盘IO等。InfluxDB是一个开源的分布式时序、时…