Python基础教程之tcp socket编程详解及简单实例
作者:lqh 发布时间:2021-04-18 12:04:29
标签:Python,tcp,socket
Python tcp socket编程详解
初学脚本语言Python,测试可用的tcp通讯程序:
服务器:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import socket
import threading
import time
def tcplink(sock, addr):
print('Accept new connection from %s:%s...' % addr);
sock.send(b'Welcome!!!');
while True:
data = sock.recv(1024);
time.sleep(1);
if not data or data.decode('utf-8') == 'exit':
break;
sock.send(b'Hello, %s!' % data);
sock.close();
print('Connection from %s:%s closed.' % addr);
if __name__ == "__main__":
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM);
s.bind(('127.0.0.1', 9090));
s.listen(8); #监听8个客户端;
print('waiting for connection...');
while True:
sock, addr = s.accept();
t = threading.Thread(target=tcplink, args=(sock,addr));
t.start();
客户端:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM);
s.connect(('127.0.0.1', 9090));
print(s.recv(1024).decode('utf-8'));
for data in [b'lk', b'aa', b'bb']:
s.send(data);
print(s.recv(1024).decode('utf-8'));
s.send(b'exit');
s.close();
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


猜你喜欢
- import httplibimport osimport timedef check_http(i):
- 封装为了jq插件,如下drag.js;(function ($) { $.fn.dragDiv = function (options) {
- SQL Server中事务日志的作用:持续记录数据库所有的事务和这些事务对数据库所做的修改;一旦数据库出现灾难事件,就需要事务日志来进行近期
- 前言相比大家都听过自动化生产线、自动化办公等词汇,在没有人工干预的情况下,机器可以自己完成各项任务,这大大提升了工作效率。编程世界里有各种各
- 如下所示:#python解决字符串倒序输出def string_reverse(m): num=len(m) a=[] for i in r
- 微信小程序报错VM1305:1 thirdScriptErrorCannot read property 'name' of
- <!doctype html> <html> <head> <meta charset="
- 简述Motivation一般来说,每个部分的内容数量是较为容易获取的,但比例(百分数)这样的数据是二次数据,这样的操作很常见比例的信息相比于
- 创建索引:MySql创建索引的语法如下:CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
- 写一个类似linux head的小工具,在window下用。head.py # -*- coding: UTF-8 -*-#!/u
- 如下所示:a = [1,2,3,4,5,6,7,8,9,10,11]step = 3b = [a[i:i+step] for i in ra
- 由于跑编码的需要,所以需要制作一个.yuv格式的图片数据集,但是手头只有.jpg格式的,故记录下转换过程。其他图片格式也可以,代码里修改一下
- 查询缓存1.查询缓存操作原理mysql执行查询语句之前,把查询语句同查询缓存中的语句进行比较,且是按字节比较,仅完全一致才被认为相同。如下,
- 今天给vscode配置git的时候,差点没把我送走,我在配置git项目的时候会,看了一个博客文章的教学,其中配置路径的方法如下1. 在git
- 1、先看最简单的场景,生产者生产消息,消费者接收消息,下面是生产者的简单代码。#!/usr/bin/env python# -*- codi
- MySQL是中小型网站普遍使用的数据库之一,然而,很多人并不清楚MySQL到底能支持多大的数据量,再加上某些国内CMS厂商把数据承载量的责任
- 题目描述724. 寻找数组的中心下标 - 力扣(LeetCode) (leetcode-cn.com)给你一个整数数组 nums
- 更换国内源vi /etc/apt/sources.listdeb https://mirrors.aliyun.com/kali kali-
- 1、挂接事件,比如onkeydown事件,要在FCKeditor_OnComplete里实现: function FCKeditor_OnC
- 在前一文中记述了Access启动不了,或者出现“正在准备安装……”的问题,今天则找到了Access对控件支持的问题。本来Access、Exc