java基础—网络编程——TCP客户端与服务端交互
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.io.*;import org.omg.CORBA_2_3.portable.OutputStream;public class ServerSocketDemo {public static void main(String[] args) throws Exception {/*** 客户端(Client)首先与服务端(Server)建立连接,形成通道,然后中,数据就可以在通道之间进行传输,并且单个Server端可以同时与多个Client端建立连接*/System.out.println("客户端启动");System.out.println(InetAddress.getLocalHost().getHostAddress());//192.168.3.4Socket socket = new Socket("192.168.3.4",10002);java.io.OutputStream out = socket.getOutputStream();out.write("我又来了".getBytes());socket.close();}}
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;public class ServerSocketDemo2 {public static void main(String[] args) throws Exception {// TODO Auto-generated method stubSystem.out.println("服务端启动");ServerSocket ss = new ServerSocket(10002);socket s = ss.accept();String ip = s.getInetAddress().getHostAddress();//读取客户端的数据InputStream in = s.getInputStream();byte[] buf = new byte[1024];int len = in.read(buf);String text = new String(buf,0,len);System.out.println(ip+" "+text);ss.close();s.close();//TCP协议传输数据必须先开服务端,再开客户端,否则 客户端根本连接不上服务端}}
运行程序:
客户端接收服务端返回的消息
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;//建立TCP客户端
public class ServerSocketDemo3
{public static void main(String[] args ) throws Exception{System.out.println("TCP协议服务端和客户端交互\n客户端启动");//建立TCP客户端Socket socket = new Socket("192.168.3.4",10002);OutputStream out = socket.getOutputStream();out.write("我来了".getBytes());//读取服务端返回的数据InputStream in = socket.getInputStream();byte[] buf = new byte[1024];int len = in.read(buf);String text = new String(buf,0,len);System.out.println("客户端:"+text);socket.close();}
}
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;public class ServerSocketDemo4 {public static void main(String[] args) throws Exception {// 建立TCP服务端System.out.println("服务端启动");ServerSocket ss = new ServerSocket(10002);Socket s = ss.accept();String ip = s.getInetAddress().getHostAddress();InputStream in = s.getInputStream();byte[] buf = new byte[1024];int len = in.read(buf);String text = new String(buf,0,len);System.out.println(ip+" "+text);OutputStream out = s.getOutputStream();out.write("数据传输成功".getBytes());s.close();ss.close();}}
客户端输入小写字母,发送到服务端
用血端将小写字母转换成大写字母返回客户端
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;//建立TCP客户端
public class ServerSocketDemo3
{public static void main(String[] args ) throws Exception{System.out.println("TCP协议服务端和客户端交互\n客户端启动");//建立TCP客户端Socket socket = new Socket("192.168.3.4",10002);//获取键盘录入的数据BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));//输出流BufferedWriter bfw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));PrintWriter out = new PrintWriter(socket.getOutputStream(),true);String len = null;//读取服务端返回的数据BufferedReader bufin = new BufferedReader(new InputStreamReader(socket.getInputStream()));while((len = bufr.readLine())!=null){if("over".equals(len))break;out.println(len);String s = bufin.readLine();System.out.println(s);}}}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;public class ServerSocketDemo4 {public static void main(String[] args) throws Exception {// 建立TCP服务端System.out.println("服务端启动");ServerSocket ss = new ServerSocket(10002);Socket s = ss.accept();String ip = s.getInetAddress().getHostAddress();BufferedReader bufr = new BufferedReader(new InputStreamReader(s.getInputStream()));PrintWriter out = new PrintWriter(s.getOutputStream(),true);String lin = null;while((lin=bufr.readLine())!=null){System.out.println(lin);out.println(lin.toUpperCase());}s.close();ss.close();}}
通过TCP上传文档:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;//通过Tcp上传图片
//客户端
public class ServerSocketDemo5 {public static void main(String[] args) throws Exception {String s = "C:\\Users\\Administrator\\Desktop\\测试文件夹\\112.java";TcpReaderFile(s);}private static void TcpReaderFile(String s) throws Exception {// TODO Auto-generated method stubFile file = new File(s);Socket sk = new Socket("192.168.3.4",10007);BufferedReader bfr = new BufferedReader(new InputStreamReader(new FileInputStream(file)));PrintWriter out = new PrintWriter(sk.getOutputStream(),true);BufferedWriter bfw = new BufferedWriter(new OutputStreamWriter(sk.getOutputStream()));String len = null;while((len=bfr.readLine())!=null){out.println(len);}sk.shutdownOutput();BufferedReader bufrd = new BufferedReader(new InputStreamReader(sk.getInputStream()));String str = bufrd.readLine();System.out.println(str);}}
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;//上传文件服务端public class ServerSocketDemo6 {public static void main(String[] args) throws Exception{ServerSocket ss = new ServerSocket(10007);Socket s = ss.accept();BufferedReader bufr = new BufferedReader(new InputStreamReader(s.getInputStream()));BufferedWriter bfwr = new BufferedWriter(new FileWriter("C:\\Users\\Administrator\\Desktop\\测试文件夹\\aaa.txt"));String str = null;while((str=bufr.readLine())!=null){bfwr.write(str);bfwr.newLine();bfwr.flush();}PrintWriter out = new PrintWriter(s.getOutputStream(),true);out.println("上传成功");}}
运行程序
上传mp3
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;//通过Tcp上传图片,mp3
//客户端
public class ServerSocketDemo5 {public static void main(String[] args) throws Exception {String s = "C:\\Users\\Administrator\\Desktop\\测试文件夹\\凤舞九天.mp3";TcpReaderFile(s);}private static void TcpReaderFile(String s) throws Exception {// TODO Auto-generated method stubFile file = new File(s);Socket sk = new Socket("192.168.3.4",10007);BufferedInputStream bfr = new BufferedInputStream(new FileInputStream(file));BufferedOutputStream bos = new BufferedOutputStream(sk.getOutputStream());byte[] b = new byte[1024];int len = 0;while((len=bfr.read(b))!=-1){bos.write(b);bos.flush();}sk.shutdownOutput();BufferedReader bufrd = new BufferedReader(new InputStreamReader(sk.getInputStream()));String str = bufrd.readLine();System.out.println(str);}}
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;//上传文件服务端public class ServerSocketDemo6 {public static void main(String[] args) throws Exception{String f = "C:\\Users\\Administrator\\Desktop\\测试文件夹\\aaa.mp3";OutputFile(f);}private static void OutputFile(String f) throws Exception {// TODO Auto-generated method stubFile file = new File(f);ServerSocket ss = new ServerSocket(10007);Socket s = ss.accept();BufferedInputStream bufr = new BufferedInputStream(s.getInputStream());BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(f));byte[] b = new byte[1024];int str = 0;while((str=bufr.read(b))!=-1){bos.write(b);bos.flush();}PrintWriter out = new PrintWriter(s.getOutputStream(),true);out.println("上传成功");}}
java基础—网络编程——TCP客户端与服务端交互相关推荐
- python服务端编程_python网络编程示例(客户端与服务端)
client客户端 if __name__ == '__main__': import socket import os sock = socket.socket(socket.AF_INET, so ...
- python 网络编程_python网络编程示例(客户端与服务端)
client客户端 if __name__ == '__main__': import socket import os sock = socket.socket(socket.AF_INET, so ...
- JAVA基础 网络编程
JAVA基础 网络编程 网络我们每天都会用到的,在我们生活中占的地位也在不断的提高,我们下面就简单了解下网络编程的内容. 想要学习网络编程,首先就需要了解网络编程包含哪些内容. 网络编程包括 IP节点 ...
- 【Java】网络编程——TCP/UDP网络对讲机
目录 前言 OSI概述 传输层 端口 Socket InetAddress类 UDP协议间的通信 UDP协议相关类 UDP 发送端 UDP 接收端 + 发送端 UDP 聊天 + 全局广播 UDP发送大 ...
- Java基础---网络编程
第一讲 概述 1.网络模型:OSI参考模型和TCP/IP参考模型 图示: 一般来说开发处于传输层和网际层,应用层为:FTP和HTTP协议等,传输层为:UDP和TCP等,网际层为:IP. 通常用 ...
- Esp8266学习之旅⑧ 你要找的8266作为UDP、TCP客户端或服务端的角色通讯,都在这了。(带Demo)
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 序号 SDK版本 内容 链接 1 nonos2.0 搭建 ...
- linux epoll机制对TCP 客户端和服务端的监听C代码通用框架实现
1 TCP简介 tcp是一种基于流的应用层协议,其"可靠的数据传输"实现的原理就是,"拥塞控制"的滑动窗口机制,该机制包含的算法主要有"慢启动&quo ...
- TCP客户端与服务端开发
** TCP客户端与服务端开发 ** 客户端 import socket# 创建客户端套接字对象 # 超数1 :iPv4(ip协议版本) # 参数2:选择协议(socket.SOCK_STREAM== ...
- 基于ET框架致敬LOL的Moba游戏源码,包含完整的客户端与服务端交互
运行环境 编辑器:Unity 2020.3.12 LTS 客户端:.Net Framework 4.7.2 IDE:JetBrain Rider 2020 服务端:.Net Core 3.1 已实现功 ...
最新文章
- 解决:请购买WinRAR许可,您注册还剩下40天(WinRAR老是弹出烦人的对话框)
- python什么是高阶函数_说说 Python 中的高阶函数
- 私有网盘nextcloud 12的问题处理及优化
- Caffe学习系列(6):Blob,Layer and Net以及对应配置文件的编写
- Python核心数据类型之字典15
- 俞敏洪:新东方业务调整 为农村孩子捐献近八万套课桌椅
- RubikFX:用JavaFX 3D解决魔方难题
- 神奇的Gamma函数(scipy)
- H.266/VVC代码学习:xCheckRDCostAffineMerge2Nx2N函数
- 【字符串】13. 罗马数字转整数
- word如何删除空行和全角空格_word中如何去掉空格和空行
- 阿里云STMP实现邮件发送
- 被子植物353个单拷贝核基因靶向捕获探针 Plant Universal — Angiosperms 353
- 想查看微信好友撤回的消息?Python帮你搞定
- 每周全球科技十大新闻(2021.6.21-6.27)
- 脚本语言【JavaScript基础】JavaScript函数:声明+调用
- 计算机老师新年贺卡祝福语,2015献给老师的新年贺卡祝福语
- 千年鸿蒙盼尔来兮,古言爱情誓言
- 基于ssl协议和基于openssl工具创建私有CA
- 乱砍设计模式之二 -- STATE模式
热门文章
- CVPR2019 | 弱监督图像分类建模
- Google CVPR 2019最新成果!用神经架构搜索实现更好的目标检测
- CVPR2019| 最新CVPR2019论文:含目标检测、分割、深度学习、GAN等领域
- 数据科学与计算机学院张治国,张治国(河海大学机电工程学院副教授)_百度百科...
- 数据结构之线性表的基本C语言语法
- 算法训练和模型部署如何避免多次重写数据预处理代码
- CNCC2017中的深度学习与跨媒体智能
- 深度学习(四十五)条件对抗网络
- python的编程方式模块化_我的Python笔记·模块化编程(一)
- java md5 16位解密_Java实现MD5(32/16位)大小写加密