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客户端与服务端交互相关推荐

  1. python服务端编程_python网络编程示例(客户端与服务端)

    client客户端 if __name__ == '__main__': import socket import os sock = socket.socket(socket.AF_INET, so ...

  2. python 网络编程_python网络编程示例(客户端与服务端)

    client客户端 if __name__ == '__main__': import socket import os sock = socket.socket(socket.AF_INET, so ...

  3. JAVA基础 网络编程

    JAVA基础 网络编程 网络我们每天都会用到的,在我们生活中占的地位也在不断的提高,我们下面就简单了解下网络编程的内容. 想要学习网络编程,首先就需要了解网络编程包含哪些内容. 网络编程包括 IP节点 ...

  4. 【Java】网络编程——TCP/UDP网络对讲机

    目录 前言 OSI概述 传输层 端口 Socket InetAddress类 UDP协议间的通信 UDP协议相关类 UDP 发送端 UDP 接收端 + 发送端 UDP 聊天 + 全局广播 UDP发送大 ...

  5. Java基础---网络编程

    第一讲     概述 1.网络模型:OSI参考模型和TCP/IP参考模型 图示: 一般来说开发处于传输层和网际层,应用层为:FTP和HTTP协议等,传输层为:UDP和TCP等,网际层为:IP. 通常用 ...

  6. Esp8266学习之旅⑧ 你要找的8266作为UDP、TCP客户端或服务端的角色通讯,都在这了。(带Demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 序号 SDK版本 内容 链接 1 nonos2.0 搭建 ...

  7. linux epoll机制对TCP 客户端和服务端的监听C代码通用框架实现

    1 TCP简介 tcp是一种基于流的应用层协议,其"可靠的数据传输"实现的原理就是,"拥塞控制"的滑动窗口机制,该机制包含的算法主要有"慢启动&quo ...

  8. TCP客户端与服务端开发

    ** TCP客户端与服务端开发 ** 客户端 import socket# 创建客户端套接字对象 # 超数1 :iPv4(ip协议版本) # 参数2:选择协议(socket.SOCK_STREAM== ...

  9. 基于ET框架致敬LOL的Moba游戏源码,包含完整的客户端与服务端交互

    运行环境 编辑器:Unity 2020.3.12 LTS 客户端:.Net Framework 4.7.2 IDE:JetBrain Rider 2020 服务端:.Net Core 3.1 已实现功 ...

最新文章

  1. 解决:请购买WinRAR许可,您注册还剩下40天(WinRAR老是弹出烦人的对话框)
  2. python什么是高阶函数_说说 Python 中的高阶函数
  3. 私有网盘nextcloud 12的问题处理及优化
  4. Caffe学习系列(6):Blob,Layer and Net以及对应配置文件的编写
  5. Python核心数据类型之字典15
  6. 俞敏洪:新东方业务调整 为农村孩子捐献近八万套课桌椅
  7. RubikFX:用JavaFX 3D解决魔方难题
  8. 神奇的Gamma函数(scipy)
  9. H.266/VVC代码学习:xCheckRDCostAffineMerge2Nx2N函数
  10. 【字符串】13. 罗马数字转整数
  11. word如何删除空行和全角空格_word中如何去掉空格和空行
  12. 阿里云STMP实现邮件发送
  13. 被子植物353个单拷贝核基因靶向捕获探针 Plant Universal — Angiosperms 353
  14. 想查看微信好友撤回的消息?Python帮你搞定
  15. 每周全球科技十大新闻(2021.6.21-6.27)
  16. 脚本语言【JavaScript基础】JavaScript函数:声明+调用
  17. 计算机老师新年贺卡祝福语,2015献给老师的新年贺卡祝福语
  18. 千年鸿蒙盼尔来兮,古言爱情誓言
  19. 基于ssl协议和基于openssl工具创建私有CA
  20. 乱砍设计模式之二 -- STATE模式

热门文章

  1. CVPR2019 | 弱监督图像分类建模
  2. Google CVPR 2019最新成果!用神经架构搜索实现更好的目标检测
  3. CVPR2019| 最新CVPR2019论文:含目标检测、分割、深度学习、GAN等领域
  4. 数据科学与计算机学院张治国,张治国(河海大学机电工程学院副教授)_百度百科...
  5. 数据结构之线性表的基本C语言语法
  6. 算法训练和模型部署如何避免多次重写数据预处理代码
  7. CNCC2017中的深度学习与跨媒体智能
  8. 深度学习(四十五)条件对抗网络
  9. python的编程方式模块化_我的Python笔记·模块化编程(一)
  10. java md5 16位解密_Java实现MD5(32/16位)大小写加密