JAVA TCP/IP网络通讯编程(二)
一个实例通过client端和server端通讯
客户端通过TCP/IP传输资源文件,比如图片,文字,音频,视频等.....
服务端接受到文件存入本地磁盘,返回接受到:“收到来自于"+s.getInetAddress().getHostName()+"的信息”
TestTCP3:
附源码:
package com.ykw.net;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import org.junit.Test;
//TCP编程例三:从客户端发送文件给服务端,服务端保存到本地。并返回"发送成功"给客户端。并关闭相应的连接
public class TestTCP3 {
@Test
public void client()throws Exception{
//1.创建Socket的对象
Socket socket = new Socket(InetAddress.getByName("127.0.0.1"),9898);
//2.从本地获取一个文件发送给服务端
OutputStream os = socket.getOutputStream();
FileInputStream fis = new FileInputStream(new File("1.jpg"));
byte[] b = new byte[1024];
int len;
while((len=fis.read(b))!=-1){
os.write(b,0,len);
}
socket.shutdownOutput();
//3.接受来自于服务端的信息
InputStream is = socket.getInputStream();
byte[] b1 = new byte[1024];
int len1;
while((len1 = is.read(b1))!=-1){
String str = new String(b1,0,len1);
System.out.println(str);
}
//4.关闭相应的流和Socket对象
is.close();
os.close();
fis.close();
socket.close();
}
@Test
public void server()throws Exception{
//1.创建一个ServerSocket对象
ServerSocket ss = new ServerSocket(9898);
//2.调用其accept()方法,返回一个Socket对象
Socket s = ss.accept();
//3.将从客户端发送过来的信息保存到本地
InputStream is = s.getInputStream();
FileOutputStream fos = new FileOutputStream(new File("D://5.jpg"));
byte[] b = new byte[1024];
int len;
while((len = is.read(b))!=-1){
fos.write(b,0,len);
}
System.out.println("收到来自于"+s.getInetAddress().getHostAddress()+"的文件");
//4.发送“接收成功”的信息反馈给客户端
OutputStream os = s.getOutputStream();
os.write("您发送的图片我已接收成功".getBytes());
//5.关闭相应的流和Socket及ServerSocket的对象
os.close();
fos.close();
is.close();
s.close();
ss.close();
}
}
转载于:https://www.cnblogs.com/yukewei/p/5041165.html
JAVA TCP/IP网络通讯编程(二)相关推荐
- TCP/IP网络程序编程——端口扫描程序(TCP)
端口扫描介绍 端口扫描可以收集目的主机的提供服务端口的信息,可以对于目的主机的信息进行收集. 端口扫描的程序每次会向目的主机特定端口发送一条请求,如果请求得到回应则可以判断是否本端口在对外开放,通过这 ...
- TCP/IP网络编程之多进程服务端(二)
TCP/IP网络编程之多进程服务端(二) 信号处理 本章接上一章TCP/IP网络编程之多进程服务端(一),在上一章中,我们介绍了进程的创建和销毁,以及如何销毁僵尸进程.前面我们讲过,waitpid是非 ...
- TCP/IP网络编程之基于TCP的服务端/客户端(二)
回声客户端问题 上一章TCP/IP网络编程之基于TCP的服务端/客户端(一)中,我们解释了回声客户端所存在的问题,那么单单是客户端的问题,服务端没有任何问题?是的,服务端没有问题,现在先让我们回顾下服 ...
- 网络编程+go+java,Go语言中的TCP/IP网络编程
Go语言TCP/IP网络编程 乍一看,通过TCP/IP层连接两个进程会感觉可怕, 但是在Go语言中可能比你想象的要简单的多. TCP/IP层发送数据的应用场景 当然很多情况下,不是大多数情况下,使用更 ...
- Java TCP/IP Socket 编程 笔记
http://jimmee.iteye.com/blog/617110 http://jimmee.iteye.com/category/93740 Java TCP/IP Socket 编程 笔记( ...
- TCP/IP网络编程之基于TCP的服务端/客户端(一)
TCP/IP网络编程之基于TCP的服务端/客户端(一) 理解TCP和UDP 根据数据传输方式的不同,基于网络协议的套接字一般分为TCP套接字和UDP套接字.因为TCP套接字是面向连接的,因此又称为基于 ...
- TCP/IP网络编程之四书五经
TCP/IP网络编程之四书五经 孟岩 TCP/IP协议是目前广域网和局域网通用的网络协议,因此,基于TCP/IP的编程就格外重要.从 应用上来说,现在直接利用C层次Socket API进行TCP/IP ...
- 高等学校计算机科学与技术教材:tcp/ip网络编程技术基础,TCP/IP网络编程技术基础...
TCP/IP网络编程技术基础 语音 编辑 锁定 讨论 上传视频 <TCP/IP网络编程技术基础>是2012年北京交通大学出版社出版的图书,作者是王雷. 书 名 TCP/IP网络编程技 ...
- TCP/IP网络编程:P1->理解网络编程和套接字
本系列文章为<TCP/IP网络编程----尹圣雨>学习笔记 文章目录 一.理解网络编程和套接字 1.1 构建接电话套接字 1.2 编写"Hello world!"服务器 ...
最新文章
- python控制caxa模块_CAXA二次开发实用手册.doc
- PMP考前复习题 系列三
- 上周热点回顾(10.10-10.16)
- 【视频课】深度学习入门必修,子欲学算法,必先搞数据!
- 中心化(又叫零均值化)和标准化(又叫归一化)
- C的无符号数据类型int,short,byte 转为 Java对应的数据long,char,short
- Hadoop基础学习
- RabbitMQ 延迟插件的作用
- Avast I Love You
- 奇安信代码安全实验室帮助微软修复多个高危漏洞,获官方致谢
- 学术英语视听说2听力原文_做英语听力题有哪些非常实用的小技巧?
- Android Studio导入so文件到项目中
- Java如何对ArrayList里的元素排序
- 浅析HiShop、Shopex、ECshop、V5shop四大网店系统
- 爬虫ip代理,打码平台推荐
- CMD到底是啥?有啥用?
- c语言:输入三角形的边长求面积
- 新手建网站的步骤及注意事项
- 休闲食品线上与线下的差异化
- JKS 密钥库使用专用格式。建议使用 “xxx“ 迁移到行业标准格式 PKCS12
热门文章
- python打卡摄像头黑屏_500行Python代码打造刷脸考勤系统 !
- Win10最常用的快捷键,效率Max提高100%(常用的应该是最全的)
- 数据挖掘常用的方法(分类,回归、聚类、关联规则)
- Ubuntu 14.04系统下安装和编译QT 5.9.2库(桌面版/ARM嵌入式IMX6版)
- [机器学习] LightGBM on Spark (MMLSpark) 使用完全手册
- 【Android-NCNN-Vulkan】ncnn-vulkan load param model 速度慢
- Windows 下各种Python库的下载与安装
- hands-on Machine Learning with sklearn
- 端口停止使用_我停止使用
- 机器学习 异常值检测_异常值是否会破坏您的机器学习预测? 寻找最佳解决方案