• 实验图片和前期准备:
  • ubuntu作为服务端,windows客户端传输数据和文件:
  • windows作为服务端,ubuntu作为客户端:

实验图片和前期准备:


服务端发送和接受i:

客户端接收服务端的时间:

设备:
自己的笔记本电脑和jetsonnano一台+显示屏
同一个wifi 查看ubuntu和windows的ip地址

注意:windows和ubuntu关闭防火墙!

ubuntu作为服务端,windows客户端传输数据和文件:

服务端用python(jetsonnano)
客户端用java写:(自己笔记本)
服务端接收到文件并输出:

代码

from socket import *
import time
from time import ctime
host='192.168.31.177'
port=8189
bufsiz=1024
addr=(host,port)
tcpServer=socket(AF_INET,SOCK_STREAM)
tcpServer.bind(addr)
tcpServer.listen(5)while True:print('wait for connection..')tcpCliServer,addr= tcpServer.accept()print('..connect from',addr)while True:data = tcpCliServer.recv(bufsiz).decode() #decode() 方法以 encoding 指定的编码格式解码字符串。默认编码为字符串编码。print(data)
##str.decode(encoding='UTF-8',errors='strict') errors -- 设置不同错误的处理方案。if data == "yes":print("yee!")if not data:break#tcpCliServer.send('[%s]%s' % (bytes(ctime(),'utf-8'),str.encode(data)))tcpCliServer.send(bytes(ctime(), 'utf-8'))tcpCliServer.send(bytes("nice", 'utf-8'))#time.sleep(2)tcpCliServer.send(bytes("nn",'utf-8'));tcpCliServer.close()tcpServer.close()

客户端接收到的:

  public static void main(String[]args) throws IOException {/*   UdpClient udpClient = new UdpClient();try {udpClient.go();}catch (Exception e){System.out.println(e);}*/
int i = 0;Socket socket = new Socket("192.168.31.177",8189);OutputStream outputStream = socket.getOutputStream();
//        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream);
//        outputStreamWriter.write(String.valueOf("我是中国人".getBytes(StandardCharsets.UTF_8)));File file = new File("D:\\Inventory.txt");DataOutputStream dataInputStream= new DataOutputStream(outputStream);FileInputStream fileInputStream = new FileInputStream(file);byte[]bytes = new byte[1024];try{dataInputStream.writeUTF(file.getName());dataInputStream.flush();System.out.println("传输文件");int len=0;while ((len = fileInputStream.read(bytes,0,bytes.length)) != -1){dataInputStream.write(bytes,0,bytes.length);dataInputStream.flush();}}catch (Exception e){System.out.println(e);}InputStream inputStream = socket.getInputStream();InputStreamReader inputStreamReader = new InputStreamReader(inputStream);outputStream.write("我是中国人yaoo".getBytes(StandardCharsets.UTF_8));char[] charArr = new char[1000];int readLen = -1;if((readLen = (inputStreamReader.read(charArr))) != -1) {while (i < 5) {i++;outputStream.write(("我是"+i).getBytes(StandardCharsets.UTF_8));String newString = new String(charArr, 0, readLen);System.out.println(newString);}dataInputStream.close();fileInputStream.close();outputStream.close();inputStream.close();socket.close();}}

windows作为服务端,ubuntu作为客户端:

自己笔记本作为服务端:


public class BeginThread extends Thread{private Socket socket;public BeginThread(Socket socket){super();this.socket = socket;}@Overridepublic void run(){try{InputStream inputStream = socket.getInputStream();InputStreamReader inputStreamReader = new InputStreamReader(inputStream);char[] charArr = new char[1000];int readLen = -1;while((readLen = (inputStreamReader.read(charArr))) != -1){String newString = new String(charArr,0,readLen);if(newString.matches("yes!"))System.out.println("成功收到来自客户端的数据");System.out.println(newString);}inputStreamReader.close();inputStream.close();//关闭两个流socket.close();//关闭socket}catch (IOException e){e.printStackTrace();}}}public class Server{public static void main(String[] args) throws IOException {ServerSocket socket = new ServerSocket(8888);int runTag = 1;while (runTag == 1){Socket socket1 = socket.accept();BeginThread beginThread = new BeginThread(socket1);beginThread.start();}socket.close();
}

服务端接收到数据:

客户端:

import socket               # 导入 socket 模块s = socket.socket()         # 创建 socket 对象
host = "192.168.31.131" # windows的ip
port = 8888               # 设置端口号s.connect((host, port))
s.send('yes!'.encode('utf-8'))  #发送 TCP 数据,将 string 中的数据发送到连接的套接字。返回值是要发送的字节数量,该数量可能小于 string 的字节大小。s.close()

【过程记录 】windows和ubuntu两台电脑局域网进行socket通信收发数据和传输文件相关推荐

  1. win7系统两台电脑之间利用Socket实现文件传输---C++实现

    参考:http://www.jb51.net/article/53732.htm 本博客主要实现了简单win7系统下,两台电脑之间(客户机与服务器)的文件传输,主要是基于Windows网络编程中win ...

  2. 同一个局域网下的两台电脑实现定时或者实时拷贝数据

    一. 实现两台电脑文件夹共享 0.连接两台电脑的网线 主要是在一个局域网之下,连接同一个热点WiFi也是可以的. 1. 设置两台电脑的IP 网络和共享中心--更改设配器设置--Internet 协议版 ...

  3. win网线连接两台电脑局域网互传文件

    问题情境: 电脑A的整个磁盘文件需要迁移到电脑B,例如系统备份的镜像文件,或者要拷贝整个硬盘里的文件,我们又找不到这么大的移动存储设备,该怎么办,其实在没有网络和大容量移动磁盘的情况下,我们可以利用一 ...

  4. 网络通信篇上(udp实战开发)聊天器的开发两台电脑实现联通--socket模块的应用开发技术

    网络通信:如今业界主流由udp通信和tcp通信,udp相对来说更加复杂一些,而tcp相对来说会更加的简单一些 我们首先先理解一下udp通信原理,和创建通信的必要步骤. 我们最常用的就是通过socket ...

  5. ubuntu两台电脑互传文件

    在一台ubuntu电脑电脑上设置共享文件夹 新建一个文件夹,准备作为共享文件夹,如下图,我建立了free文件夹 在文件夹上右击-属性-权限,全部设置为"创建和删除文件" 右击fre ...

  6. 一些计算两台主机之间进行socket通信的延迟的小程序

    最后更新于2021年6月1日 11:06:11 2021年5月26日 16:44:07:HTTP.TCP和Socket的概念和原理及其区别 iPerf图形化工具Jperf图文使用教程 Measurin ...

  7. linux 两个虚拟机 socket本地,两台虚拟机Linux系统socket通信

    服务器: #include #include #include #include #include #include #include #define SERVER_PORT 20000 // def ...

  8. 两台电脑数据传输软件

    在工作或者生活中,两台电脑之间经常要互相传输数据,如果是传输文件的话,那么有很多方式都可以实现在两台电脑之间传输文件.一般来说,在联网的情况下,可以通过QQ.微信.钉钉等软件进行文件传输,或者通过局域 ...

  9. 两台电脑大文件传输的详细教程

    说到电脑间的数据传输,想必大家的脑海中立刻就会浮现出几个词,"慢"."麻烦",对于局域网内的两台电脑来说,如果是临时转移几个小文件,像是Word.PPT.PDF ...

最新文章

  1. The C10K problem原文翻译
  2. HDU1425简单排序题
  3. docker卸载命令_使用docker完成生信分析环境搭建
  4. 获取request header的值
  5. php联系人表单,PHP联系人表单布局不允许在电子邮件中添加新行
  6. 多级指针和静动态内存的跨函数访问
  7. hdu 5441 (并查集)
  8. Java-变量、常量
  9. 2021计算机一级新增知识点,2021年计算机一级知识点.doc
  10. Python风格总结:函数
  11. GridView 水平方向滑动
  12. 产品经理如何进行竞品分析?
  13. Spring学习笔记3——使用注解的方式完成注入对象中的效果
  14. html5晋级之路-学习笔记表单
  15. java replaceall删除中括号和内容_replaceAll()如何同时替换多个不同的字符串(或多个符号)...
  16. win10系统安装软件安装和问题处理
  17. vs2017安装nuget包生成和管理工具
  18. 如何使用Lumion创建惊艳的渲染
  19. Android 11.0 自定义仿小米全面屏手势导航左右手势滑动返回UI效果
  20. uniapp发布h5

热门文章

  1. Java web应用引用外部jar包 运行时报ClassNotFoundException 解决方法
  2. 开发商微信选房后不退认筹金_【震惊】胶州恒大文化旅游城项目爆丑闻!2000余人缴纳认筹金后竟有1800余户因对房子不满意提出退款...
  3. files函数提取文件名HTML,Javascript – 如何从文件input控件提取文件名
  4. js中while死循环语句_Java系列教程day06——循环语句
  5. java删除不,Java文件不能删除,该怎么解决
  6. java求100以内的a2 b2=c2,Java语言程序设计Ⅱ-中国大学mooc-试题题目及答案
  7. mysql group_concat distinct,如何在MySQL中使用GROUP_CONCAT和CONCAT与DISTINCT引用单列值?...
  8. dqn在训练过程中loss越来越大_[动手学强化学习] 2.DQN解决CartPole-v0问题
  9. kotlin将对象转换为map_在 Kotlin 的 data class 中使用 MapStruct
  10. c语言坐标三角形判断,【C语言】判断三角形类型(示例代码)