精华内容
下载资源
问答
  • 之前使用局域网两台电脑进行通信,redis主从部署,连接两台电脑 但是是一个主从复制的模式,从机无法给主机发送信息,因此,考虑另开一个redis,用于从机向主机发送信息 #####redis配置 使用了两台PC PC1(主控...

    之前使用局域网下两台电脑进行通信,redis主从部署,连接两台电脑 但是是一个主从复制的模式,从机无法给主机发送信息,因此,考虑另开一个redis,用于从机向主机发送信息

    
    
    #####redis配置
    
    使用了两台PC
    PC1(主控端)
    ip1:192.168.64.110 port:6379(控制PC2的IP1)
    ip2:10.104.64.110  port:6377
    
    
    修改文件:
    redis.windows.conf
    bind 192.168.64.110
    port 6379
    
    复制redis.windows.conf重命名为slave.conf
    修改文件:
    bind 10.104.64.110
    port 6377
    增加:
    slaveof 10.104.64.109 6380
    
    
    *********
    
    PC2(被控端)
    ip1:192.168.64.109 port:6378
    ip2:10.104.64.109  port:6380(控制PC1的IP2)
    
    
    修改文件:
    redis.windows.conf
    bind10.104.64.109
    port 6380
    
    复制redis.windows.conf重命名为slave.conf
    修改文件:
    bind 192.168.64.109
    port 6378
    增加:
    slaveof 192.168.64.110 6379
    
    
    
    
    1)必须安装redis(使用.msi),否则会无法连接成功
    2)必须使用
    redis-server.exe redis.windows.conf
    redis-server.exe redis slave.conf
    启动两台PC的redis
    
    

    pc1在redis文件下打开两个cmd,分别运行

    redis-cli.exe -h 192.168.64.110 -p 6379
    redis-cli.exe -h 10.104.64.110 -p 6377
    

    pc2在redis文件下打开两个cmd,分别运行

    redis-cli.exe -h 192.168.64.109 -p 6378
    redis-cli.exe -h 10.104.64.109 -p 6380
    

    然后就可以愉快地使用两个主从复制来进行通讯咯!

    python实现该过程可以参考:Python实现-两台PC利用多进程分别进行redis的接收和发送,只需要把redis.StrictRedis(host=‘127.0.0.1’)修改为对应的ip和端口即可:订阅并监听消息的函数中填入作为slave的,发布消息的函数中填入作为master的

    展开全文
  • (主要是我发现没有办法把那个东西用在不同局域网两台电脑)。心里一直想实现一个能在广域网上能通信的东西!所以就有这个小项目! 实现思路: 技术概念 使用方法 测试结果 代码 实现思路: ...

    之前,我曾做过在局域网下进行通信的东西。(主要是我发现没有办法把那个东西用在不同的局域网的两台电脑)。心里一直想实现一个能在广域网上能通信的东西!所以就有这个小项目!

    实现思路:

    通过一台有公网IP的服务器作为中转站。将局域网下的电脑转给这个中转的服务器,然后这个中转的服务器将收到的数据转给另外的一台电脑就好了。

    技术概念

    下面的技术都是为了实现全双工嘿嘿,而且也要保证传输的时候较为同步(网络IO)

    • 服务器多线程,接受的信息(分两个线程)
    • 客户端实现多线程,接受信息的同时多线程输入。

    使用方法

    • 在一个服务器(在公网上)运行服务端代码。(这里我用的是,我在阿里云租的服务器)
    • 两个人(我这里,只实现了两个人聊天的情况),分别在自己的电脑上运行起客户端代码(或者编译好的客户端程序(.exe格式))。
    • 然后,直接就可以开始聊天了~
    • 可以在任何时候输入信息,敲回车就可以发出去了。
    • 输入空的信息就可以结束了,也就敲一个回车就好了。(如果一方结束了,但是另外一方没结束就是发了,对方也收不到~ 类比于离线状态发信息

    测试结果

    下面是一个受到一个远端的信息情况和发一个信息的情况。其实这是一个全双工聊天工具,只不过我这个演示有点不好,没展示出来 hhh 而且这些都是手工build-wheel型hh很适合学习~ 哈哈哈

    [Sat Mar 3 23:52:23 2018] : Hello
    what?

    代码

    客户端代码:

    from socket import *
    import threading
    from time import ctime
    
    
    def recv(sock, BUFSIZ):
        try:
            data = sock.recv(BUFSIZ)
        except OSError:
            return  # find it was close, then close it
        if data.decode() is '[CHAT]BEGIN':
            print(data.decode())
        elif data.decode() is '[CHAT]END':
            sock.close()
        else:
            print('[%s]' % ctime(), ':', data.decode())
    
    
    if __name__ == '__main__':
        HOST = '服务器的公网IP地址'
        POST = 21567
        ADDR = (HOST, POST)
        tcpCli = socket(AF_INET, SOCK_STREAM)
    
        tcpCli.connect(ADDR)
    
        threadrev = threading.Thread(target=recv, args=(tcpCli, 1024))
        threadrev.start()
        while True:
            data = input()
            if not data:
                break
            tcpCli.send(data.encode())
        tcpCli.close()
    
    

    服务端代码~(运行在一个服务器上)

    from socket import *
    import threading
    
    
    def trans(sock1, sock2, BUFSIZ):
        while True:
            try:
                data = sock1.recv(BUFSIZ)
            except OSError:
                break
            if not data:
                sock1.close()
            else:
                try:
                    sock2.send(data)
                except OSError:
                    sock1.close()
                    break
    
    
    if __name__ == '__main__':
        HOST = ''
        POST = 21567
        ADDR = (HOST, POST)
        tcp = socket(AF_INET, SOCK_STREAM)
        tcp.bind(ADDR)
        tcp.listen(3)
    
        Users = []
        Addrs = []
        Trans = []
        while len(Users) != 2:
            tcpCli, addr = tcp.accept()
            Users.append(tcpCli)
        trans1 = threading.Thread(target=trans, args=(Users[0], Users[1], 1024))
        trans1.start()
    
        while True:
            try:
                data = Users[1].recv(1024)
            except OSError:
                break
            if not data:
                Users[1].close()
            else:
                try:
                    Users[0].send(data)
                except OSError:
                    Users[1].close()
                    break
        tcp.close()
    
    

    在这里插入图片描述

    展开全文
  • 局域网两台电脑的通讯过程!
  • 局域网两台电脑如何进行TCP通信 现在需要软件与硬件进行通信 主要通过TCP/UDP进行通信
  • C#实现在VS下两台PC机间的TCP通信,采用Windows窗体应用,UI界面接收信息和使用按钮操作。 包含服务器和客户端,运用多线程进行TCP通信,操作简单,适合初学者学习TCP本机间局域网下的通信
  • 【背景】在同一个无线局域网(wifi)内,windows系统上执行ping的命令,一直无法ping通另一windows的电脑 同一个无线局域网:即ip地址前三段相同,包括热点wifi 【解决方案】: 关闭你的防火墙,就可以ping通了...

    【背景】在同一个无线局域网(wifi)内,windows系统上执行ping的命令,一直无法ping通另一台windows的电脑

    同一个无线局域网:即ip地址前三段相同,包括热点wifi
    【解决方案】:
    关闭你的防火墙,就可以ping通了 (这种方式我不太推荐,毕竟无法应用到实际的工作之中,因为这其实是防火墙的问题)
    修改window的 入站和出站规则
    进入 控制面板\系统和安全\Windows 防火墙,在左侧有 “高级设置”
    这里有2种做法,
    *新创建一种入站和出站的规则
    修改“文件和打印机共享”*
    示例采用的是第二种方法,点击属性以后,在“高级”设置作用的范围,然后在“作用域”就可以按照ip来进行限定了
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述

    之后再另外一台机器上ping 就可以了

    展开全文
  • port) # 写哪个ip就要运行在哪机器上 # 设置半连接池 ser.listen(back_log) # 最多可以连接多少个客户端 while 1: # 阻塞等待,创建连接 con,address = ser.accept() # 在这个位置进行等待,监听端口号 while 1: ...

    客户端(发消息)

    import socket
    
    p = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    p.connect(('192.168.1.101',22)) # 服务端ip和端口
    while 1:
        msg = input('please input')
        # 防止输入空消息
        if not msg:
            continue
        p.send(msg.encode('utf-8'))  # 收发消息一定要二进制,记得编码
        print()
        if msg == '1':
            break
    

    服务端

    import socket
    
    # 明确配置变量
    ip_port = ('192.168.1.101',22)
    back_log = 5
    buffer_size = 1024
    # 创建一个TCP套接字
    ser = socket.socket(socket.AF_INET,socket.SOCK_STREAM)   # 套接字类型AF_INET, socket.SOCK_STREAM   tcp协议,基于流式的协议
    ser.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)  # 对socket的配置重用ip和端口号
    # 绑定端口号
    ser.bind(ip_port)  #  写哪个ip就要运行在哪台机器上
    # 设置半连接池
    ser.listen(back_log)  # 最多可以连接多少个客户端
    while 1:
        # 阻塞等待,创建连接
        con,address = ser.accept()  # 在这个位置进行等待,监听端口号
        while 1:
            try:
                # 接受套接字的大小,怎么发就怎么收
                msg = con.recv(buffer_size)
                if msg.decode('utf-8') == '1':
                    # 断开连接
                    con.close()
                print(msg.decode('utf-8'))
            except Exception as e:
                break
    # 关闭服务器
    ser.close()
    
    展开全文
  • 1、分别将电脑A与电脑B的出站规则和入站规则中的ICMPV4(一共有三项或者项)设置为允许。 (在控制面板-防火墙-高级设置-入站规则/出战规则-文件打印-ICMPV4中) 2、对电脑A输入win+r运行cmd打开命令提示符,...
  • 01、处于不同局域网下的Socket通信(配置)

    千次阅读 热门讨论 2020-06-11 11:37:56
    拥有一台有公网IP的云服务器作为中转站,将局域网下的电脑将数据信息发送给中转的服务器,然后这个中转的服务器将收到的数据转给另外一台电脑,这样就可以实现两台电脑之间的互相通信。 原因:我们可以实现在局域网...
  • 外网(广域网Wide Area Network,WAN):Internet,是连接不同地区局域网或城域网计算机通信的远程网。通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个地区、城市和国家,或横跨几个洲并...
  • 局域网两台电脑ping不通

    千次阅读 2019-09-29 18:10:29
    假设电脑A、B均在192.168.0.X的网段内,两台电脑不需要额外设置,就可以互相ping的通。如果ping不同,包括但不限于的原因有: 1.目标主机的防火墙没关 2.原因是局域网有多个交换机,导致经常被攻击,后来开了...
  • 网上看的,测试成功,写下来服务器端import java.net.*;import java.io.*;public class Server {private ServerSocket server;private Socket client;public Server() {boolean flag = true;try {server = new ...
  • 不同局域网之间socket通信

    千次阅读 多人点赞 2020-10-30 20:53:52
    文章目录不同局域网之间socket通信前言一、所需的硬件及...但两台设备分别处于不同网段的局域网中时,之间就不能通信了。为了解决这个问题,需要一台有公网IP的服务器作为中转,就可以实现不同局域网之间两台设备基于s
  • 不同局域网电脑如何互相访问

    千次阅读 2020-01-17 10:22:28
    作者:赵梓旗 ... 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业...那么B的路由器会把数据包转发到它所管理的局域网的 192.168.0.100:22端口上,这样就实现了你对主机B的SSH控制。这样就完成了。
  • 局域网两台电脑ping不通的问题总结

    万次阅读 多人点赞 2018-04-09 15:44:36
    1.在同一网段内假设电脑A、B均在192.168.0.X的网段内,两台电脑不需要额外设置,就可以互相ping的通。如果ping不同,包括但不限于的原因有:目标主机的防火墙没关目标主机有电脑管家/360等防护软件2.在不同网段如上...
  • 局域网怎么建立的?两台电脑如何组建局域网

    万次阅读 多人点赞 2019-06-17 18:28:26
    两台电脑如何组建局域网?最简单的方法无疑是直接使用网线连接两台计算机,但少有多台计算机放在一起的,这时候我们可以将所有计算机都连接到同一个路由上,就可以使用路由器来实现局域网的访问,具体操作请看下文...
  • 事前准备:两台电脑分别用一根网线与交换机相连(如果两台电脑直接用普通网线(直连线)相连,是无法ping通的;得用交叉线相连才可以,如果用普通网线,必须要有交换机作媒介) step1:电脑A打开以太网,并设置IPV4...
  • 这几天专业课《通信与网络》实验要求使用socket实现两台计算机的通信,本以为对socket编程还算熟悉的我应付这个实验应该没什么毛病,但是一动手发现还是挺多问题的,先将填坑之路记录于此。 实验器材 两台运行在...
  • 用的A、B两台机器都是实体机,不是虚拟机,发现无论是在A还是在B上发送多播信息,多播组中的信息都无法被对方接收。 解决方法: 把A电脑上的多余网卡全部禁用,只保留通信用的那张网卡。 把B电脑上的多余...
  • Java实现两台电脑通信(UDP)

    千次阅读 多人点赞 2019-03-26 21:28:55
    实现通信包含发送方和接收方部分,但这部分除了端口设置,其他代码完全相同,非常简单。 因为不同于之前写的聊天室篇使用TCP/IP进行通信,UDP通信不需要用Scocket建立起通信管道,直接发送包即可(不管对方能否...
  • socket 实现两台电脑通信

    热门讨论 2012-02-22 16:58:12
    通过socket实现简单的文件传输.分别含有客户端和服务器的完整代码。
  • 看过很多关于局域网下的两台设备之间的通信方式,最多的就是通过socket进行tcp/ip通信。建立一个服务端,再建立一个客户端,客户端向服务端发起请求连接。然后再进行两端的通信。但发现其实这却存在着很多的问题与...
  • 我们知道处于同一局域网两台计算机,进行通信的方式很简单,可以直接通过局域网内的私有ip定位计算机。但是如果要访问外网即非本局域网的计算机就相对而言比较复杂。 下边为了更好的理解这个过程,我从几个问题...
  • 1、进入电脑A的DOS界面(“Windows”+“R”,然后输入cmd进入命令行界面),输入ipconfig查看ip地址 2、在B电脑打开命令行,ping一下A电脑的IP地址:
  • I've been studying how to use sockets to make two java programs communicate.Now, on each example I've gone through, they've always placed the "server side program" on the same computer on which the "c...
  • 两台电脑如何连接小局域网(2009-02-24 00:39:15)标签:计算机技巧杂谈最简单的办法是一根网线两机互连 基本设置1)保证每台电脑上都有至少一块网卡2)连接两台电脑的线必须是 交叉线3)把交叉线的两端分别插到两台电脑...
  • SOCK_DGRAM是基于UDP的,专门用于局域网,基于广播 SOCK_STREAM 是数据流,一般是tcp/ip协议的编程 SOCK_DGRAM分是数据抱,是udp协议网络编程 数据通过json.dumps转换为字节,json.loads转换为字典。 通过socket发送
  • 两台电脑上的虚拟机之间相互通信

    千次阅读 2019-10-19 11:41:34
    我是在一台电脑上用VMware部署个虚拟节点,一个master,一个node,组成一个小型kubernetes集群架构。现在的问题是,我想要在其中一个虚拟节点上搭建一个数据库供其他真实节点及真实节点上安装的虚拟机来访问,从而...
  • //#pragmacomment(lib,"ws2_32.lib")ws2_32.lib若在dev下编译,用的是libws2_32.a这个库========================下面是公共代码:========================#ifndef__CINITSOCK__H__#define__CINITSOCK__H__#include...
  • 这里是网段 用来判断两台电脑是否在一个局域网(广播域) 下面是不在一个广播域里面的消息传递: 1不在一个广播域里面的消息传递,需要通过网关来实现。 01.通过计算不在一个广播域里面之后(通过网段来判断),用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,113
精华内容 9,645
关键字:

不同局域网的两台电脑通信