Web Socket的基本使用

本文介绍了WebSocket的基本概念,将其比喻为网络通信的发动机,提供TCP/IP的封装。通过示例代码展示了如何创建TCP和UDP套接字,以及套接字的使用流程,包括发送和接收数据。目前内容涵盖创建、使用和关闭套接字,后续将继续更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Socket

网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。
建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。

下面用几个实用的代码来解释:

  1. 创建一个tcp socket(tcp套接字)
import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# ...这是使用套接的功能(省略)...

# 不用的时候,关闭套接字
s.close()
  1. 创建一个upd socket(upd套接字)
import socket

# 创建udp的套接字
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# ...这里是使用套接字功能(省略)...

# 不用的时候,关闭套接字
s.close()
说明
  • 套接字使用流程与文件的使用流程很类似
  1. 创建套接字
  2. 使用套接字收/发数据
  3. 关闭套接字

udp发数据
# -*- coding:utf-8 -*-
from socket import *

# 1. 创建udp套接字
upd_cocket = socket(AF_INET, SOCK_DGRAM)

# 2. 准备收接方的地址
# '199.168.1.103' 表示目的ip地址
# 8080 表示目的端口
dest_addr = ('199.168.1.103:8080')	# 注意 是元组 ,ip是字符串,端口号是数字

# 3. 从键盘获取数据
send_data = input("请输入数据")

# 4. 发送数据到指定的电脑上的指定程序中
udp_socket.sendto(send_data.encode('utf-8'), dest_addr)

# 5. 关闭套接字
udp_socket.close()
udp收数据
# -*- coding:utf-8 -*-
from socket import *


# 1. 创建套接字
udp_socket = socket(AF_INET, SOCK_DGRAM)

# 2. 绑定本地的相关信息,如果一个网络程序不绑定,则系统会随机分配
local_addr = (' ',7788)	 # ip地址和端口号,ip一般不用写表示本机的任何一个ip
udp_socket.bind(local_addr)   # 必须绑定本地自己的ip和端口

# 3. 等待接受对方的数据
recv_data = udp_socket.recvfrom(1024)  # 表示本次接受的最大字节数

# 4. 显示接受到的数据
print(recv_data[0].decode('gbk'))  # Windows默认是gbk编码,必须写gbk编码,Ubuntu默认是utf-8编码

# (b'http://www.cmsoft.cn', ('172.33.19.150', 8080))
# 发送过来的是元组,我们想要的是元组第0个元素,第1个元素是发送方的ip和端口

# 5. 关闭套接字
udp_socket.close()

未完待续…
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值