Tcp实现聊天讲解

客户端:

1.连接服务器Socket

2.发送消息

服务端:

1.建立服务端口ServerSocket

2.等待用户的连接accept

3.接收用的消息

==========================

package com.wuming.lesson02;import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;//服务端
public class TcpServer03 {public static void main(String[] args) {ServerSocket serverSocket=null;Socket socket=null;InputStream is=null;ByteArrayOutputStream baos=null;//1.提供地址try {serverSocket = new ServerSocket(9999);while(true){//2.连客户端socket = serverSocket.accept();//3.读客户端消息is = socket.getInputStream();/**      byte[] buffer = new byte[1024];int len;while((len=is.read(buffer))!=-1){java.lang.String msg = new java.lang.String(buffer, 0, len);System.out.println(msg);}* *///管道流baos = new ByteArrayOutputStream();byte[] buffer = new byte[1024];int len;while((len=is.read(buffer))!=-1){baos.write(buffer,0,len);}System.out.println(baos.toString());}} catch (IOException e) {e.printStackTrace();}finally {//关闭资源if (baos!=null){try {baos.close();} catch (IOException e) {e.printStackTrace();}}if(is!=null){try {is.close();} catch (IOException e) {e.printStackTrace();}}if(socket!=null){try {socket.close();} catch (IOException e) {e.printStackTrace();}}if(serverSocket!=null){try {serverSocket.close();} catch (IOException e) {e.printStackTrace();}}}}
}
=========================
package com.wuming.lesson02;import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;//客户端
public class TcpClientDemo01 {public static void main(String[] args) {OutputStream os=null;Socket socket=null;//1.服务器地址try {InetAddress serverIp = InetAddress.getByName("127.0.0.1");int port=9999;//2.创socket连接socket = new Socket(serverIp,port);//3.发送消息IO流os = socket.getOutputStream();os.write("你好".getBytes());} catch (Exception e) {e.printStackTrace();}finally {if(os!=null){try {os.close();} catch (IOException e) {e.printStackTrace();}}if(socket!=null){try {socket.close();} catch (IOException e) {e.printStackTrace();}}}}
}

============

先启动服务端,在启动客户端,在服务端控制台看打印结果为:

你好

在启动客户端,结果为(因为服务端用来while(true)):

你好

你好

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

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

相关文章

Spring精华问答 | Spring Boot有哪些优点?

戳蓝字“CSDN云计算”关注我们哦!Spring是于2003 年兴起的一个轻量级的Java 开发框架,为了解决企业应用开发的复杂性而创建的。今天,我们一起来看看关于Spring更加有深度的问答吧。。1Q:Spring Boot有哪些优点?A&#…

C/C++ round 函数 - C语言零基础入门教程

目录 一.round 函数简介二.round 函数使用三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 面向对象 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 设计模式 零基础 C/C 学习路线推荐…

基于Kubernetes的持续部署方案

戳蓝字“CSDN云计算”关注我们哦!文章转载自Docker方案概述本技术方案为基于Kubernetes为核心的持续部署(下文简称CD)方案,可以满足开发方的程序级日志查看分析,运维方的快速扩容与日常运维分析,并且可以保…

C/C++ abs 函数 - C语言零基础入门教程

目录 一.abs 函数简介二.abs 函数使用三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 面向对象 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 设计模式 零基础 C/C 学习路线推荐 : C…

Tcp实现文件上传

package com.wuming.lesson02;import java.io.*; import java.net.ServerSocket; import java.net.Socket;public class TcpServerDemo02 {public static void main(String[] args) throws Exception {//1.创服务ServerSocket serverSocket new ServerSocket(9000);//2.监听客…

C/C++ fabs 函数 - C语言零基础入门教程

目录 一.fabs 函数简介二.fabs 函数使用三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 面向对象 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 设计模式 零基础 C/C 学习路线推荐 :…

云存储精华问答 | 如何选择云迁移策略?

戳蓝字“CSDN云计算”关注我们哦!云存储是在云计算概念上延伸和发展出来的一个新的概念,是一种新兴的网络存储技术,是指通过集群应用、网络技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协…

UDP消息发送

package com.wuming.lesson03;import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException;//还是要等待客户端的连接 public class UdpServerDemo01 {public static void main(String[] args) throws Exception {//1.开放端口Datagram…

C/C++ 余弦函数 cos - C语言零基础入门教程

目录 一.cos 函数简介二.cos 函数实战三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 面向对象 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 设计模式 零基础 C/C 学习路线推荐 : C…

云重磅|中西合璧 联想凌拓瓜熟蒂落;5G实锤 华为推出首部5G折叠手机;​IBM打造Kubernetes无处不在”的模式...

戳蓝字“CSDN云计算”关注我们哦!嗨,大家好,重磅君带来的【云重磅】特别栏目,如期而至,每周二第一时间为大家带来重磅新闻。把握技术风向标,了解行业应用与实践,就交给我重磅君吧!重…

C/C++ 正弦函数 sin - C语言零基础入门教程

目录 一.sin 函数简介二.sin 函数实战三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 面向对象 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 设计模式 零基础 C/C 学习路线推荐 : C…

云计算精华问答 | 边缘计算、雾计算、霾计算,它们究竟是什么?

戳蓝字“CSDN云计算”关注我们哦!物联网对于数据的处理能力要求很高,怎么能够从庞大的数据海中挖掘一些有价值的信息对于物联网的发展至关重要,因此云计算,雾计算,边缘计算等等都将发挥其左右。今天,就让我…

IOS – OPenGL ES 设置图像亮度 GPUImageBrightnessFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

React之props的简写方式和报错示范

1.修改name值,这里可以直接改 1)这样写报错,因为props是只读的 2.修改age值 1)这样写没问题,age1 2)这样写报错,因为props是只读的 3.简写,将这两个放入class Person里面&#xff0…

IOS – OPenGL ES 调节图像曝光度 GPUImageExposureFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

边缘计算精华问答 | 边缘计算需要IaaS、PaaS、SaaS等服务能力吗?

戳蓝字“CSDN云计算”关注我们哦!随着物联网在全球各行业中越来越普遍,企业们发现了云计算的不足,它不是解决所有问题的答案。此外,如果只有云计算,物联网项目不能充分发挥其潜力,特别是在实时分析&#xf…

UDP多线程在线咨询

package com.wuming.chat;public class TalkStudent {public static void main(String[] args) {//开启两个线程new Thread(new TalkSend(7777,"localhost",9999)).start();new Thread(new TalkReceive(8888,"老师")).start();} } package com.wuming.cha…

推动边缘计算的七项核心技术

戳蓝字“CSDN云计算”关注我们哦!作者:施巍松文章转载自边缘计算社区计算模型的创新带来的是技术的升级换代,而边缘计算的迅速发展也得益于技术的进步。本节总结了推动边缘计算发展的7项核心技术,它们包括网络、隔离技术、体系结构…

IOS – OpenGL ES 调节图像对比度 GPUImageContrastFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

React之字符串形式的ref

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>1_字符串形式的ref</title> </head> <body> <!-- 准备好一个容器 --> <div id"test"></div> <!-- 核心库 --> &…