tcp_demo
代码讲解:
server
import socket def main():
# 创建tcp服务器套接字
tcp_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定
load_addr = ('', 8000)
tcp_server.bind(load_addr)
# 监听
print('等待客户端接入...')
tcp_server.listen(128)
# 等待客户端消息
client_socket, client_addr = tcp_server.accept()
print(str(client_addr) + '接入...')
# 接收客户端请求
print('等待客户端消息...')
client_msg = client_socket.recv(1024)
print(client_msg.decode('gbk'))
# 回复客户端消息
client_socket.send('OK'.encode('gbk'))
# 关闭套接字
tcp_server.close()
client_socket.close() if __name__ == '__main__':
main()
client
import socket def main():
# 创建tcp套接字
tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 链接
dest_ip = input('请输入对方ip:') # 192.168.6.206
dest_port = int(input('请输入对方port: '))
tcp_socket.connect((dest_ip, dest_port))
while True:
# 发送数据
send_msg = input('请输入要发送的信息: ')
tcp_socket.send(send_msg.encode('gbk'))
# 接收数据
recv_msg = tcp_socket.recv(1024)
print('接收到的数据: ', recv_msg.decode('gbk'))
break
# 关闭套接字
tcp_socket.close() if __name__ == '__main__':
main()
server相对于client的来说,多了绑定、监听和等待客户端消息,另外,接受和回复客户端请求用的都是来自客户端的socket。
server分为这几步:
1、创建服务器套接字tcp
2、绑定ip和端口
3、监听
4、等待客户端消息
5、接受客户端请求
6、回复客户端请求
7、关闭套套接字
client分为这几步:
1、创建tcp套接字
2、链接服务器
3、发送和接受数据
4、关闭套接字
创建tcp服务器套接字
tcp_demo的更多相关文章
- Erlang 103 Erlang分布式编程
Outline 笔记系列 Erlang环境和顺序编程Erlang并发编程Erlang分布式编程YawsErlang/OTP 日期 变更说明 2014-11-23 A Outl ...
随机推荐
- D语言-认识D语言&安装
Part1: Something about "D" D语言在国外比较流行,在国内相当少的人才知道这个语言的存在 但是D语言有C++的效率,有Java的灵活 更重要的有两点: 1. ...
- lwip stats
lwip统计量分两种,一种是lwip自己的,一种是snmp的. 直接用snmp的 /* ----------------------------------- ---------- Statistic ...
- Visual C# 2015调用SnmpSharpNet库实现简单的SNMP元素查询
一开始调研发现有几个SNMP的库, 一个是net-SNMP,这个好像是linux用的多 一个是微软自己的WinSNMP,这个没有例子,不太好操作 一个是SnmpSharpNet,这个有些例子比较好, ...
- k8s系列----一个简单的例子
本实验来自k8s权威指南 解决访问demo出错,关键是靠https://www.cnblogs.com/neutronman/p/8047547.html此链接下面的某个大神的评论 主要yaml文件 ...
- FastDFS 配置文件 tracker.conf
FastDFS 版本5.05 配置文件分为三部分 控制器:tracker.conf存储器:storage.conf 客户端:client.conf 文件位置:/etc/fdfs 基本配置(基础配置 ...
- Http2优点
1.信道复用 2.分帧传输 3.Server Push Http/1.1与Http/2对比网站: https://http2.akamai.com/demo https://http2.akamai. ...
- 面试突击 | Redis 如何从海量数据中查询出某一个 Key?附视频
1 考察知识点 本题考察的知识点有以下几个: Keys 和 Scan 的区别 Keys 查询的缺点 Scan 如何使用? Scan 查询的特点 2 解答思路 Keys 查询存在的问题 Scan 的使用 ...
- npm/gulp/nodejs
npm淘宝镜像:https://npm.taobao.org/ vscode先安装npm淘宝镜像 再安装gulp:https://www.cnblogs.com/xiaoleiel/p/1116056 ...
- cesium结合geoserver利用WFS服务实现图层新增(附源码下载)
前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...
- SQL Server等待事件—PAGEIOLATCH_EX
什么是PAGEIOLATCH_EX等待事件? 下面我们将对PAGEIOLATCH_EX等待事件的相关资料做一个简单的归纳.整理.关于PAGEIOLATCH_EX,官方文档的简单介绍如下: PAGEIO ...