0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

socket 发送和接收数据方法

科技绿洲 来源:网络整理 作者:网络整理 2024-11-12 14:07 次阅读

1. Socket 基本概念

网络编程中,socket 是一个通信端点。它允许程序发送和接收数据。根据通信协议的不同,socket 可以分为以下几种类型:

  • 流式 socket (SOCK_STREAM) :提供可靠的双向连接,如 TCP。
  • 数据报 socket (SOCK_DGRAM) :提供不可靠的双向连接,如 UDP。

2. 创建 Socket

Python 中,我们使用 socket 模块来创建 socket。以下是创建一个 TCP socket 的基本步骤:

import socket

# 创建 socket 对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

这里,socket.AF_INET 表示使用 IPv4 地址,socket.SOCK_STREAM 表示使用 TCP 协议。

3. 绑定 Socket

在服务器端,我们需要将 socket 绑定到一个特定的地址和端口上,以便客户端可以连接到它。

# 绑定到地址和端口
s.bind(('localhost', 12345))

4. 监听连接

服务器端需要监听连接请求。

# 开始监听,参数指定最大连接数
s.listen(5)

5. 接受连接

服务器端接受客户端的连接请求。

# 接受连接,返回一个新的 socket 对象和客户端地址
client_socket, addr = s.accept()
print(f"Connected by {addr}")

6. 发送数据

使用 send 方法发送数据。

# 发送数据
message = 'Hello, client!'
client_socket.send(message.encode('utf-8'))

7. 接收数据

使用 recv 方法接收数据。

# 接收数据
data = client_socket.recv(1024)
print(f"Received: {data.decode('utf-8')}")

8. 关闭连接

完成通信后,关闭 socket。

# 关闭连接
client_socket.close()
s.close()

9. 客户端连接

客户端连接到服务器的步骤如下:

# 创建 socket 对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 连接到服务器
s.connect(('localhost', 12345))

# 发送数据
s.send('Hello, server!'.encode('utf-8'))

# 接收数据
data = s.recv(1024)
print(f"Received: {data.decode('utf-8')}")

# 关闭连接
s.close()

10. 异常处理

在网络编程中,异常处理是非常重要的。我们需要处理可能发生的各种异常,如连接错误、超时等。

try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('localhost', 12345))
s.send('Hello, server!'.encode('utf-8'))
data = s.recv(1024)
print(f"Received: {data.decode('utf-8')}")
except socket.error as e:
print(f"Socket error: {e}")
finally:
s.close()

11. 总结

通过上述步骤,我们了解了如何使用 Python 的 socket 库来发送和接收数据。这包括创建 socket、绑定、监听、接受连接、发送和接收数据以及关闭连接。在实际应用中,我们还需要考虑异常处理和错误处理,以确保程序的健壮性。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6867

    浏览量

    88799
  • Socket
    +关注

    关注

    0

    文章

    211

    浏览量

    34631
  • 端口
    +关注

    关注

    4

    文章

    953

    浏览量

    32008
  • 网络编程
    +关注

    关注

    0

    文章

    71

    浏览量

    10064
收藏 人收藏

    评论

    相关推荐

    使用lwip socket udp功能,开发板为客户端时不能够接收服务器端发送过来的数据

    请教下,使用 lwip socket udp 功能,开发板为客户端时不能够接收服务器端发送过来的数据 ? 1,如果开发板为 服务器端,收发都可以 2,如果开发板为 客户端,不能够
    发表于 04-16 06:01

    请问使用lwip创建socket,该如何做到非阻塞的接收发送数据

    请问使用lwip创建socket,该如何做到非阻塞的接收发送数据
    发表于 06-19 06:02

    cc3200 UDP同一个socket发送可以,接收失败?

    cc3200 UDP同一个socket发送可以,接收失败,为什么同一个socket不行??用两个socket,一个负责
    发表于 03-11 16:39

    串口接收数据方法

    上一篇文章介绍了串口发送数据的优化方法,使用中断的方式发送数据可以提高系统实时性。这次介绍串口接收
    发表于 01-19 07:50

    CH395 Socket3 Socket4 Socket5 配置成TCP_Client,Socket4 Socket5不能接收数据怎么解决?

    CH395 Socket3 Socket4 Socket5 配置成TCP_Client,只有Socket3能正常收发数据
    发表于 10-17 06:14

    请问使用lwip创建socket,该如何做到非阻塞的接收发送数据

    请问使用lwip创建socket,该如何做到非阻塞的接收发送数据
    发表于 02-17 07:53

    使用串行接口IICA实现主发送接收

    本篇应用说明中,主要描述通过使用串行通信接口IICA,实现单主系统中主发送/接收通信(地址发送数据发送
    发表于 09-13 10:24 3次下载
    使用串行接口IICA实现主<b class='flag-5'>发送</b>和<b class='flag-5'>接收</b>

    使用安卓Socket实现发送接收数据WiFi转串口连接单片机实现控制的程序

    本文档的主要内容详细介绍的是使用安卓Socket实现发送接收数据WiFi转串口连接单片机实现控制的程序免费下载。
    发表于 08-13 17:32 6次下载
    使用安卓<b class='flag-5'>Socket</b>实现<b class='flag-5'>发送</b><b class='flag-5'>接收</b><b class='flag-5'>数据</b>WiFi转串口连接单片机实现控制的程序

    实现安卓Socket连接实现发送接收数据的程序免费下载

    本文档的主要内容详细介绍的是实现安卓Socket连接实现发送接收数据的openwrt wifi转串口连接单片机实现控制程序免费下载。
    发表于 06-04 17:53 0次下载
    实现安卓<b class='flag-5'>Socket</b>连接实现<b class='flag-5'>发送</b>和<b class='flag-5'>接收</b><b class='flag-5'>数据</b>的程序免费下载

    socket的基本概念和原理

    Socket是一种通信协议,用于在网络中实现进程间的通信。它是一种抽象的编程接口,允许应用程序通过网络发送接收数据。 1. 什么是Socket
    的头像 发表于 08-16 10:51 874次阅读

    什么是socket编程 socket与tcp/ip协议的关系

    协议族定义了数据在网络中如何传输,而socket则提供了一个编程接口,使得开发者可以编写代码来发送接收
    的头像 发表于 11-01 16:01 137次阅读

    C语言中的socket编程基础

    Socket编程简介 Socket是一种通信机制,允许程序之间进行通信。在C语言中,socket编程是网络编程的基础。通过使用socket,程序可以
    的头像 发表于 11-01 16:51 233次阅读

    socket 编程基础入门

    Socket 编程基础入门 在计算机网络中,Socket 是一个抽象层,它将网络通信的细节隐藏起来,为开发者提供了一个简单的接口来发送接收数据
    的头像 发表于 11-12 14:03 159次阅读

    socket 在物联网中的应用

    不同的计算机程序在网络中进行通信。它基于TCP/IP协议,提供了一种可靠的、面向连接的通信方式。在物联网中,Socket使得设备能够发送接收数据,实现远程控制和监控。 2.
    的头像 发表于 11-12 14:19 310次阅读

    socket 和 UDP 协议的对比

    Socket 定义 Socket 是一个抽象层,它提供了一种方式,使得应用程序能够发送接收数据。在网络编程中,
    的头像 发表于 11-12 14:28 170次阅读