TCP(发消息:简易代码实现)
文章目录
- 客户端
- 服务器
- review:查询IP和端口
- 发送文件
客户端
- 链接服务器Socket
- 发送消息
package com.ayv.try02;import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;//客户端
public class TcoClientDemo01 {public static void main(String[] args) {Socket socket =null;OutputStream os = null;try {//知道服务器端口号InetAddress serverIP = InetAddress.getByName("127.0.0.1");int port=9999;//创建一个socket链接socket = new Socket(serverIP,port);//发送一个消息IO流os = socket.getOutputStream();os.write("hello world".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();}}}}
}
服务器
- 建立服务的端口 serverSocket
- 等待用户的链接 accept
- 接收用户的消息
package com.ayv.try02;import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;//服务端
public class TcpServeDemo02 {public static void main(String[] args) {ServerSocket serverSocket=null;Socket socket =null;InputStream is =null;ByteArrayOutputStream baos =null;try { serverSocket = new ServerSocket(9999);//等待客户端连接socket = serverSocket.accept();//读取客户端消息is = socket.getInputStream();//管道流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 (Exception 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();}}}}
}
review:查询IP和端口
package com.ayv.try01;import java.net.InetAddress;
import java.net.UnknownHostException;
//测试IP
public class TestInetadderss {public static void main(String[] args) {//InetAddress intAddress1 = null;try {//查询本机地址InetAddress intAddress1 = InetAddress.getByName("127.0.0.1");System.out.println(intAddress1);InetAddress intAddress3 = InetAddress.getByName("localhost");System.out.println(intAddress3);InetAddress intAddress4 = InetAddress.getLocalHost();System.out.println(intAddress4);//查询网站IP地址InetAddress intAddress2 = InetAddress.getByName("www.baidu.com");System.out.println(intAddress2);} catch (UnknownHostException e) {e.printStackTrace();}}
}
发送文件
//服务端
package com.ayv.try02;import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;public class TcpServerDamo2 {public static void main(String[] args) throws Exception {//创建服务ServerSocket serverSocket = new ServerSocket(9000);//监听客户端的链接Socket socket = serverSocket.accept(); /**阻断式监听,会一直等待客户端链接*///获取输入流InputStream is = socket.getInputStream();//文件输入FileOutputStream fos = new FileOutputStream(new File("receive.jpg"));byte[] buffer = new byte[1024];int len;while((len=is.read(buffer))!=-1){fos.write(buffer,0,len);}fos.close();is.close();socket.close();serverSocket.close();}}
//客户端
package com.ayv.try02;import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;public class TCPClientDamo2 {public static void main(String[] args) throws Exception {//创建一个Socket链接Socket socket = new Socket(InetAddress.getByName("127.0.0.1"), 9000);//创建一个输出流OutputStream os = socket.getOutputStream();//读取文件FileInputStream fis = new FileInputStream(new File("观望.jpg"));//写出文件byte[] buffer = new byte[1024];int len;while((len=fis.read(buffer))!=-1){os.write(buffer,0,len);}//关闭资源fis.close();os.close();socket.close();}
}
TCP(发消息:简易代码实现)相关推荐
- java tcp发消息给硬件_java – TCP客户端/服务器通信只发送第一条消息?
我在java中设置一个简单的TCP客户端服务器交互. 服务器: 服务器是用Java编写的桌面客户端: import java.io.BufferedReader; import java.io.Dat ...
- java tcp发消息给硬件_服务器可以使用TCP向客户端发送消息吗?
如果您有自定义客户端(例如,不是浏览器中的Web应用程序),则可以根据需要与服务器 Build 纯TCP连接 . 但是,TCP上的每次传输都需要双方正在使用的某种数据格式(通常称为"协议&q ...
- python qq自动发消息软件_Python之qq自动发消息的示例代码
准备:pip install win32gui 可能遇到的麻烦: No module named 'win32gui' 的解决方法(踩坑之旅) 源码: import win32gui import w ...
- WPF仿微信界面发送消息简易版
WPF仿微信界面发送消息简易版 参考别的博主的例子用WPF MVVM框架来仿了一个微信聊天界面,做了个发送消息简易功能,下面一起来看看吧! 以下为View视图布局代码,消息对话框的样式直接在这里定义了 ...
- Unity中进行网络通信:三:unity客户端和Unity服务端互相发消息
目录 一.目的 1.想知道:Unity中进行网络通信:unity客户端和Unity服务端互相发消息 二.参考 1.unity3D中使用Socket进行数据通信(三) 三.操作:一:完成:在同一个Uni ...
- send函数给FTP服务器发消息,send函数给FTP服务器发消息
send函数给FTP服务器发消息 内容精选 换一换 Kafka系列2:深入理解Kafka消费者上篇聊了Kafka概况,包含了Kafka的基本概念.设计原理,以及设计核心.本篇单独聊聊Kafka的生产者 ...
- NodeJS 搭建一个本地的服务,实现一个简单的公屏发消息
本 Chat 主要是写关于 Node.js 如何搭建一个本地的服务,然后做一个简单的可以发消息的功能. 安装 Express 安装 Nodemon 使用 Nodemon 安装 socket.io so ...
- python写一个文件下载器_Python3使用TCP编写一个简易的文件下载器
原标题:Python3使用TCP编写一个简易的文件下载器 利用Python3来实现TCP协议,和UDP类似.UDP应用于及时通信,而TCP协议用来传送文件.命令等操作,因为这些数据不允许丢失,否则会造 ...
- Unity消息简易框架 Advanced C# messenger
Unity消息简易框架 Advanced C# messenger Unity C# 消息机制 [转载 雨凇MOMO博客] https://www.xuanyusong.com/archives/2 ...
- Win7命令行局域网发消息图解
一 操作实例 在本机实验: Win7下net send命令已经取消: 改用msg对本机发送:收到后弹出消息框: 对55机器发送,出现1722错误:可能55没有开机: Win7下已经无messenger ...
最新文章
- CleanMyMac扩展管理功能
- NetBeans 时事通讯(刊号 # 117 - Sep 16, 2010)
- leetcode Single Number python
- Spark SQL中 RDD 转换到 DataFrame (方法二)
- 跟着这篇柳叶刀的文章来学会重复测量方差分析
- javascript对页面简单的加密和解密
- Ubuntu中用gedit保存文件失败的解决办法
- 【云栖计算之旅】线下沙龙第2期精彩预告:Docker在云平台上的最佳实践
- 低代码发展专访系列之八:低代码平台能够打破企业「应用孤岛」现象吗?
- 法院才是最童叟无欺的一元店
- Asp.Net Core简单整理
- python批量读取文件赋值给一个参数_求助一个Python 循环读取文件,并对读到的字符串进行赋值,然后进一步生成json file 的方法。...
- php 测试数据整数,PHP中将字符串转化为整数(int) intval() printf() 性能测试
- Android4OpenCV实时人脸检测detectMultiScale报错
- python程度员要学很多英语吗_为什么程序员应该学好英语?
- 运动会加油稿计算机学院150字,运动会加油稿150字
- 2022年全国大学生数学建模竞赛赛题B组解题参考+代码
- table标签的介绍
- CPC广告业务架构总结
- 斐波那契回调线怎么画_知行交易学院-新手教学-斐波那契回调线的正确画法(二)...
热门文章
- C语言试题二十九之编写函数int function(int lim,int aa[max])求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数。
- linux之wget和curl如何携带cookie进行链接访问
- C和指针之数组编程练习5 (矩阵相乘)
- C和指针之字符串之实现strcpy函数
- ubuntu环境下如何解决svn提交出现can‘t check path ‘/home/...‘
- Android之中获取应用程序(包)的信息-----PackageManager的使用(一)
- python os.walk模块_Python之os.walk和os.path.walk
- 5分钟盗走你的隐私照片,这个全球性漏洞到底有多可怕
- 理科生浪漫起来,谁都顶不住!
- 东北大哥在线反套路hhhhhh | 今日最佳