首页
学习
活动
专区
圈层
工具
发布

Python——用socket和线程实现

用socket和线程实现全双工收发数据 ---- 1.基础知识 Socket(套接字) 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。..., dest_port)) def recv_msg(udp_socket,): """接收数据""" while True: recv_data = udp_socket.recvfrom...= socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 2.绑定本机ip和端口:第一个参数为空则默认绑定本机ip,第二个参数填写端口号...tr.start() if __name__ == "__main__": main() ---- 3.运行 运行前准备工作,准备两台电脑,一台运行程序(以下称A电脑),另一台(以下称B)用mNetAssist...Windows下打开cmd用ipcongfig查询ip(linux下用ifconfig查询),查询结果如下:A电脑ip为172.16.86.21,B电脑的ip为172.17.189.148。

1.3K20

socket通信(C#)

对像; 2:用socket对像的Bind()方法绑定EndPoint; 3:用socket对像的Listen()方法开始监听; 4:接受到客户端的连接,用socket对像的Accept()方法创建新的socket...对像用于和请求的客户端进行通信; 5:用新的socket对象接收(Receive)和发送(Send)消息。...)); } } } 启动Server等待客户端访问:需要安全权限,点击【允许访问即可】 客户端(Client): 1:建立一个Socket对像; 2:用socket对像的Connect...()方法以上面建立的EndPoint对像做为参数,向服务器发出连接请求; 3:如果连接成功,就用socket对像的Send()方法向服务器发送信息; 4:用socket对像的Receive()方法接受服务器发来的信息...(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); // 用指定的ip和端口号初始化IPEndPoint

1.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C# 三种方式实现Socket数据接收(经典)

    备注: 此方法的实现从当前流中读取最多的 count 个字节,并将它们存储在从 offset 开始的 buffer 中。流中的当前位置提升已读取的字节数;但是,如果出现异常,流中的当前位置保持不变。...实现返回已读取的字节数。仅当位置当前位于流的末尾时,返回值才为零。如果没有任何可用的数据,该实现将一直阻塞到至少有一个字节的数据可读为止。...即使尚未到达流的末尾,实现仍可以随意返回少于所请求的字节。...DateTime.Now.ToString("yy-MM-dd hh:mm:ss") + stringData + "\n"; }); } 之前用的时候没发现什么问题...以下分别采用三种方式实现了数据的正常接收,代码如下: using System; using System.Collections.Generic; using System.ComponentModel

    8.9K20

    dotnet C# 入门示例 用底层的 Socket 进行 HTTP 网络请求

    本文属于基础入门博客,将和大家介绍如何在 dotnet C# 代码里面使用底层的 Socket 进行 HTTP 网络请求 本文将使用向百度发送 HTTP 和 HTTPS 请求作为示例,来和大家样式如何使用底层的...本文内容里面只给出关键代码片段,如需要全部的项目文件,可到本文末尾找到本文所有代码的下载方法 // 一个域名可以有多个 IP 地址,利用此特性,可以实现 IP 级域名备份,也能利用此特性实现寻找距离自己最近的...= new Socket(SocketType.Stream, ProtocolType.Tcp); await socket.ConnectAsync(ipAddress, 80);...using System.Net.Security; using System.Net.Sockets; using System.Text; // 一个域名可以有多个 IP 地址,利用此特性,可以实现...IP 级域名备份,也能利用此特性实现寻找距离自己最近的 IP 地址 IPAddress[] ipAddresses = await Dns.GetHostAddressesAsync("www.baidu.com

    53310

    C# 三种方式实现Socket数据接收(经典)

    备注: 此方法的实现从当前流中读取最多的 count 个字节,并将它们存储在从 offset 开始的 buffer 中。流中的当前位置提升已读取的字节数;但是,如果出现异常,流中的当前位置保持不变。...实现返回已读取的字节数。仅当位置当前位于流的末尾时,返回值才为零。如果没有任何可用的数据,该实现将一直阻塞到至少有一个字节的数据可读为止。...即使尚未到达流的末尾,实现仍可以随意返回少于所请求的字节。...DateTime.Now.ToString("yy-MM-dd hh:mm:ss") + stringData + "\n"; }); } 之前用的时候没发现什么问题...以下分别采用三种方式实现了数据的正常接收,代码如下: using System; using System.Collections.Generic; using System.ComponentModel

    2.3K30

    windows环境下用c++实现socket编程

    一、什么是Socket     socket即套接字,用于描述地址和端口,是一个通信链的句柄。应用程序通过socket向网络发出请求或者回应。     ...服务端:建立socket,声明自身的端口号和地址并绑定到socket,使用listen打开监听,然后不断用accept去查看是否有连接,如果有,捕获socket,并通过recv获取消息的内容,通信完成后调用...closeSocket关闭这个对应accept到的socket,如果不再需要等待任何客户端连接,那么用closeSocket关闭掉自身的socket。     ...        3、将套接字设置为监听模式等待连接请求(listen());         4、请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept());         5、用返回的套接字和客户端进行通信...        3、和服务器进行通信(send()/recv());         4、关闭套接字,关闭加载的套接字库(closesocket()/WSACleanup()); 四、windows下实现

    3.7K10

    用 abstract unix socket 实现进程单实例运行

    二,abstract namespace unix socket http://linux.die.net/man/7/unix unix socket 有3种: 基于文件的 socketpair 创建的...,匿名的 abstract namespace 的,Linux特有 Linux 下, AF_UNIX socket 支持一种特殊的 abstract namespace unix socket 。...相比 普通的基于文件系统的 unix socket,abstract namespace unix socket : 没有磁盘文件 进程挂了以后自动删除,无残留文件 无需担心与 文件系统上的文件冲突,不需要关心文件系统上的绝对路径是否存在的问题...三,代码 于是我用 abstract unix socket 实现了一个 SysSem 工具类( 一个 system 范围的 semaphore ), 用来: 让一个程序只启动一个实例。...特点: 多进程/线程 并发安全。 当持有的进程被 kill ,OS自动释放,无残留。 没有磁盘文件,没有文件意外被删的各种情况。 不占用 tcp/udp 端口。 简单,不到 60行代码。

    1.7K10

    用Python和GUI实现Socket多线程通信方案

    下面是一个使用 Python 和 Tkinter GUI 库实现 Socket 多线程通信的简单示例。在这个示例中,我是创建了一个简单的聊天应用,其中服务器和客户端可以通过 Socket 进行通信。...通过使用一些打印语句进行调试,开发者认为错误可能出现在以下代码片段中:self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)self.sock.connect...import socketimport threadingimport gobject​class MyClass: def __init__(self): self.sock = socket.socket...(socket.AF_INET, socket.SOCK_STREAM) self.sock.connect(("localhost", 5005))​ self.collectingThread...这两个代码示例分别实现了服务器端和客户端。服务器端监听本地 9999 端口,并等待客户端连接。每当有客户端连接时,服务器端会创建一个新的线程来处理该客户端的通信。

    83410

    【Linux】用C++实现UDP通信:详解socket编程流程

    它定义了数据的格式、传输方式、错误处理、安全机制等,确保通信双方能够正确理解彼此的信息并完成协作。 协议的核心要素 语法(Syntax) 数据的结构或格式,例如报文如何排列、字段的长度和顺序等。...常见协议分类 类别 协议示例 作用 网络通信 TCP/IP、HTTP、FTP 实现数据传输和网络互联 安全协议 SSL/TLS、SSH、HTTPS 加密通信和身份验证 应用层协议 SMTP(邮件)、DNS...注意:这里面用的LOG是上一章封装过的一个LOG类,可以直接拿过来用 Comm.hpp #pragma once #include #define Die(code) exit(...buffer[n] = 0; std::cout << buffer <<std::endl; } } return 0; } 总结 至此,我们用C...++完整实现了一个基于UDP的通信流程,从创建 socket、绑定地址,到收发数据、关闭连接,每一步都围绕 Linux 下的 socket 编程核心展开。

    1.3K10
    领券