Java中使用Socket实现服务器端和客户端通讯
创建服务器端serverSocket
1 import java.io.BufferedReader; 2 import java.io.IOException; 3 import java.io.InputStream; 4 import java.io.InputStreamReader; 5 import java.io.OutputStream; 6 import java.io.PrintWriter; 7 import java.net.ServerSocket; 8 import java.net.Socket; 9 10 /** 11 * 服务端 12 * @author Administrator 13 * 14 */ 15 public class Server { 16 17 public static void main(String[] args) throws IOException { 18 //创建一个服务器端socket,指定绑定的端口号,并监听此端口 19 ServerSocket serverSocket = new ServerSocket(8888); 20 //调用accept()方法开始监听,等待客户端的连接 21 System.out.println("**********服务器即将启动,等待客户端的连接*************"); 22 Socket socket = serverSocket.accept(); 23 //获取输入流,并读取客户端信息 24 InputStream inp = socket.getInputStream(); 25 //把字节流转换成字符流 26 InputStreamReader isr = new InputStreamReader(inp); 27 //为字符流增加缓冲区 28 BufferedReader bfr = new BufferedReader(isr); 29 String info = null; 30 while((info=bfr.readLine())!=null){//循环读取数据 31 System.out.println("我是服务器,客户端说:"+info); 32 } 33 socket.shutdownInput();//关闭输入流 34 //向客户端传递的信息 35 OutputStream ots = socket.getOutputStream(); 36 PrintWriter pw = new PrintWriter(ots); 37 pw.write("欢迎登陆"); 38 pw.flush(); 39 40 //关闭资源 41 pw.close(); 42 ots.close(); 43 bfr.close(); 44 isr.close(); 45 inp.close(); 46 socket.close(); 47 serverSocket.close(); 48 49 } 50 51 }
创建客户端socket
1 import java.io.BufferedReader; 2 import java.io.IOException; 3 import java.io.InputStream; 4 import java.io.InputStreamReader; 5 import java.io.OutputStream; 6 import java.io.PrintWriter; 7 import java.net.Socket; 8 import java.net.UnknownHostException; 9 10 /** 11 * 客户端 12 * @author Administrator 13 * 14 */ 15 public class Client { 16 17 public static void main(String[] args) { 18 try { 19 //创建一个客户端socket 20 Socket socket = new Socket("localhost",8888); 21 //向服务器端传递信息 22 OutputStream ots = socket.getOutputStream(); 23 PrintWriter pw = new PrintWriter(ots); 24 pw.write("用户名:admin;密码:123"); 25 pw.flush(); 26 //关闭输出流 27 socket.shutdownOutput(); 28 //获取服务器端传递的数据 29 InputStream is = socket.getInputStream(); 30 InputStreamReader isr = new InputStreamReader(is); 31 BufferedReader br = new BufferedReader(isr); 32 String info = null; 33 while((info=br.readLine())!=null){ 34 System.out.println("我是客户端,服务器说:"+info); 35 } 36 //关闭资源 37 br.close(); 38 isr.close(); 39 is.close(); 40 pw.close(); 41 ots.close(); 42 socket.close(); 43 } catch (UnknownHostException e) { 44 e.printStackTrace(); 45 } catch (IOException e) { 46 e.printStackTrace(); 47 } 48 } 49 50 }
先启动服务器端,再启动客户端
服务器端打印结果为
**********服务器即将启动,等待客户端的连接************* 我是服务器,客户端说:用户名:admin;密码:123
客户端打印结果
我是客户端,服务器说:欢迎登陆
转载于:https://www.cnblogs.com/jpwz/p/5695093.html
Java中使用Socket实现服务器端和客户端通讯相关推荐
- Java中利用socket实现简单的服务端与客户端的通信(中级)——实现任意双向通信
本文计划采用socket实现客户端和服务端的任意双向通信,即客户端可以随时给服务端发消息,服务端也可以随时给客户端发消息,最终结果就是一个类似与QQ的聊天软件的功能. 以下代码可以直接拷贝到Eclip ...
- Java中利用socket实现简单的服务端与客户端的通信(基础级)
在上一篇文章中,简单的介绍了java中入门级的socket编程,简单的实现了客户端像服务器端发送数据,服务器端将数据接收并显示在控制台,没有涉及多线程.上一篇文章的链接:Java中利用socket实现 ...
- 在Java中使用Socket模拟客户端和服务端(多线程)
1:Socket与ServerSocket的交互 2.Socket和ServerSocket介绍 Socket 构造函数 Socket() Socket(InetAddress address, in ...
- asp.core api 通过socket和服务器通信发送udp_读懂Java中的Socket编程
Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一.如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的.本文会介绍一下基于TCP/IP的S ...
- 读懂Java中的Socket编程
Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一.如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的.本文会介绍一下基于TCP/IP的S ...
- 使用python中的socket实现服务器和客户端,并完成图片的传输
使用python中的socket实现服务器和客户端,并完成图片的传输. 2018年03月09日 16:05:23 阅读数:301 socket服务器代码: [python] view plaincop ...
- java socket分包粘包 代码_分享java中处理socket通信过程中粘包情况的实例代码
本篇文章主要介绍了java中处理socket通信过程中粘包的情况,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 这两天学习了java中处理socket通信过程中粘包的情况,而且很重要,所以,今天添 ...
- Socket实现服务器端与客户端之间通信(输入文字聊天)
用Socket实现服务器端与客户端之间通信 需求: 键盘输入文字使服务器端与客户端可以实现文字通信. 使用的是TCP协议. TCP协议 客户端 创建Socket连接服务端(指定ip地址,端口号)通过i ...
- python——通过socket实现服务器端和客户端的在线聊天
前言:本文讲解涉及到python中socket函数用法,需要巩固基础知识的可以查看下面博客 python--Socket网络编程(详细讲解)(一)_xiaofengdada的博客-CSDN博客_soc ...
最新文章
- c#-检查USB硬件变化
- 机器学习算法加强——数据清洗
- Java泛型的类型擦除
- Vue.js安装使用教程
- USB 摄像头成熟方案介绍
- SDN 前提知识:关于东西南北向接口
- python列表的存储结构_在python列表类型结构中合理地存储10亿个以上的值
- 阿里P8好友说,要想成为Java大佬,就得要多逛逛国外的这几个技术网站...
- 在Winform开发框架中实现对数据库的加密支持(转)
- 学生信息管理系统html界面,学生信息管理系统jsp课程设计.doc
- 怎么组建云计算中心?
- 学习python记录2
- 关于阿里矢量图标的普通无色和彩色的使用方法
- Simulink系列 —— S-function的使用笔记(1)
- sketchy 图像草图-鹿 deer
- Python ROS键盘控制机械臂
- SIP–eyebeam配置手册
- MOBI怎么转换成EPUB?试试这几个软件吧
- 差距就是这样在不知不觉落开了
- 慎入坑:腾讯云轻量2核2G3M服务器30元不建议选择
热门文章
- php制作404,利用thinkphp怎么制作一个404跳转页面
- docx 图片预处理 Java_如何在java中将docx文件头图像复制到另一个docx文件中
- 华硕z9pa u8 bios下载_教程:图文教学,华硕M8H M8R硬破解支持intel 9代处理器
- HTML5怎样设置站点,我是怎样让网站用上HTML5 Manifest
- linux wordpress伪静态,wordpress程序在win和Linux系统下的伪静态设置 - 张力博客
- pat 乙级 1002 写出这个数(C++)
- 工业以太网交换机的产品性能有哪些呢?
- 【渝粤教育】电大中专学前儿童发展心理学3作业 题库
- 【渝粤教育】广东开放大学 网络市场与预测 形成性考核 (23)
- php vimrc配置文件,vim技巧:我的 .vimrc 配置文件,详解每一个配置项的作用