-
python入门教程之利用socket通信
本站最新发布 Python从入门到精通|Python基础教程
试听地址 https://www.xin3721.com/eschool/pythonxin3721/
利用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()
试听地址 https://www.xin3721.com/eschool/pythonxin3721/
利用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()
最新更新
多线程下每个线程的执行方式
如何写出高质量的代码之数组优化
Python多线程进程和线程的区别5
Python多线程进程和线程的区别4
Python多线程进程和线程的区别3
Python多线程进程和线程的区别2
Python多线程进程和线程的区别
Python迭代器和生成器
在python中的模块指的是什么?
如提示当前上下文中不存在名称“Config
.Net Standard(.Net Core)实现获取配置信息
Linux PXE + Kickstart 自动装机
Shell 编程 基础
Shell 编程 条件语句
CentOS8-网卡配置及详解
Linux中LVM逻辑卷管理
1.数码相框-相框框架分析(1)
Ubuntu armhf 版本国内源
Linux中raid磁盘阵列
搭建简易网站
access教程之Access简介
mysql 安装了最新版本8.x版本后的报错:
Mysql空间数据&空间索引(spatial)
如何远程连接SQL Server数据库的图文教程
复制SqlServer数据库的方法
搜索sql语句
sql中返回参数的值
sql中生成查询的模糊匹配字符串
数据定义功能
数据操作功能