-
利用socket通信
利用socket通信
Socket对象提供了操作系统的send()、sendto()、recv和recvfrom()调用的接口。
文件类对象提供了python的read()、write()和readline()接口
TCP客户端代码
import socket
# 创建tcp套接字
sockfd = socket.socket()
# 发起连接
server_addr = ('127.0.0.1',1900)
sockfd.connect(server_addr)
# 收发消息
while True:
data = input("请输入您要发送的内容:")
if not data:
break
num=sockfd.send(data.encode())
data = sockfd.recv(1024)
peername=sockfd.getpeername()
print("返回数据端地址:",peername,",自己的地址是:",sockfd.getsockname())
print("发送了",num,"个字节的数据!")
print("收到服务器的应答,内容为:",data.decode())
# 关闭
sockfd.close()
TCP服务端
import socket
# 创建流式套接字
sockfd = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 绑定地址
sockfd.bind(('127.0.0.1', 1900))
# 设置监听
sockfd.listen(5)
# 等待处理客户端链接
while True:
print("等待连接......")
try:
connfd, addr = sockfd.accept()
print("与:", addr,"连接成功")
except KeyboardInterrupt:
print("退出服务")
break
# 收发消息
while True:
data = connfd.recv(1024)
# 得到空则退出循环
if not data:
break
print("收到%消息:" , data.decode())
n = connfd.send('已收到消息,我们会及时处理!'.encode())
print("发送了 %d 个字节数据" % n)
connfd.close()
# 关闭套接字
sockfd.close()
Socket对象提供了操作系统的send()、sendto()、recv和recvfrom()调用的接口。
文件类对象提供了python的read()、write()和readline()接口
TCP客户端代码
import socket
# 创建tcp套接字
sockfd = socket.socket()
# 发起连接
server_addr = ('127.0.0.1',1900)
sockfd.connect(server_addr)
# 收发消息
while True:
data = input("请输入您要发送的内容:")
if not data:
break
num=sockfd.send(data.encode())
data = sockfd.recv(1024)
peername=sockfd.getpeername()
print("返回数据端地址:",peername,",自己的地址是:",sockfd.getsockname())
print("发送了",num,"个字节的数据!")
print("收到服务器的应答,内容为:",data.decode())
# 关闭
sockfd.close()
TCP服务端
import socket
# 创建流式套接字
sockfd = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 绑定地址
sockfd.bind(('127.0.0.1', 1900))
# 设置监听
sockfd.listen(5)
# 等待处理客户端链接
while True:
print("等待连接......")
try:
connfd, addr = sockfd.accept()
print("与:", addr,"连接成功")
except KeyboardInterrupt:
print("退出服务")
break
# 收发消息
while True:
data = connfd.recv(1024)
# 得到空则退出循环
if not data:
break
print("收到%消息:" , data.decode())
n = connfd.send('已收到消息,我们会及时处理!'.encode())
print("发送了 %d 个字节数据" % n)
connfd.close()
# 关闭套接字
sockfd.close()
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
JavaScript判断两个数组相等的四类方法
js如何操作video标签
React实战--利用甘特图和看板,强化Paas平
【记录】正则替换的偏方
前端下载 Blob 类型整理
抽象语法树AST必知必会
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程