python3实现socket通信
目的:实现两台机器之间的通信。也就是说一个作为服务端(时刻监听接收数据),另一个作为客户端(发送数据)。
Python实现的过程个人理解:
- 1.服务端开始监听。
- 2.客户端发起连接请求。
- 3.服务端收到连接请求信息。
- 3.客户端发送数据。
- 4.服务端收到客户端的数据,并返回给客户端自定义的数据。
- 5.客户端收到被返回的数据。
- 重复3-5…………
- 6.客户端或者服务端关闭这次通信。
- socket百度百科:https://baike.baidu.com/item/socket/281150。socket是python的默认模块。
socket_1serve.py 如下:
# -*- coding: utf-8 -*-
"""
Created on Wed Jul 18 16:42:50 2018 @author: lihc
""" #==============================================================================
# 1. TCP server端代码
# #!/usr/bin/env python
# #
# # -*- coding:utf-8 -*-
# #
#============================================================================== from socket import *
from time import ctime HOST = ''
PORT = 21567
BUFSIZE=1024
ADDR=(HOST, PORT) tcpSrvSock=socket(AF_INET, SOCK_STREAM)
tcpSrvSock.bind(ADDR)
tcpSrvSock.listen(5) while True:
print ('waiting for connection ...',ctime())
tcpCliSock,addr = tcpSrvSock.accept()
print ('... connected from:', addr)
while True:
data=tcpCliSock.recv(BUFSIZE)
print("receive from 2:",data)
if not data:
break
tcpCliSock.send(str.encode('[%s] %s'%(ctime(), data)))
print ([ctime()],':',data) tcpCliSock.close()
tcpSrvSock.close()
socket_2client.py如下:
# -*- coding: utf-8 -*-
"""
Created on Wed Jul 18 16:46:33 2018 @author: lihc
""" #==============================================================================
# 2. TCP client端代码
# #!/usr/bin/env python
# #
# # -*- coding:utf-8 -*-
# #
#============================================================================== from socket import * HOST='localhost'
PORT=21567
BUFSIZE=1024
ADDR=(HOST, PORT) tcpCliSock=socket(AF_INET, SOCK_STREAM)
tcpCliSock.connect(ADDR) while True:
data = input('>')
print(type(data))
data = str.encode(data)
print(data)
if not data:
break
tcpCliSock.send(data)
data=tcpCliSock.recv(BUFSIZE)
if not data:
break
print (data) tcpCliSock.close()
python之socket编程
http://www.360doc.com/content/17/1005/06/36536556_692309867.shtml
Socket编程】Python实现简易Web服务器
Python之路【第六篇】:socket
让我们一起来构建一个 Web 服务器
telnet配置和telnet用法
服务器端的基本流程:
1.初始化socket()
2.使用bind()绑定ip和端口号
3 使用listen()监听消息
4.获取客户端的套接字地址accept()
5.使用recv()接收数据,send()发送数据与客户端进行交互
python3实现socket通信的更多相关文章
- python3.7 socket通信
def OpenClient(self,e): global line line = socket.socket(socket.AF_INET,socket.SOCK_STREAM) line.bin ...
- 基于TCP与UDP协议的socket通信
基于TCP与UDP协议的socket通信 C/S架构与初识socket 在开始socket介绍之前,得先知道一个Client端/服务端架构,也就是 C/S 架构,互联网中处处充满了 C/S 架构(Cl ...
- 我看不下去鸟。。。。Java和C#的socket通信真的简单吗?
这几天在博客园上看到好几个写Java和C#的socket通信的帖子.但是都为指出其中关键点. C# socket通信组件有很多,在vs 使用nuget搜索socket组件有很多类似的.本人使用的是自己 ...
- php简单实现socket通信
socket通信的原理在这里就不说了,它的用途还是比较广泛的,我们可以使用socket来做一个API接口出来,也可以使用socket来实现两个程序之间的通信,我们来研究一下在php里面如何实现sock ...
- Socket通信类
package com.imooc; import java.io.BufferedReader; import java.io.IOException; import java.io.InputSt ...
- AgileEAS.NET SOA 中间件平台.Net Socket通信框架-介绍
一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...
- socket通信
socket通信 一:socket基于Tcp连接,数据传输有保证 二:socket连接的建立过程: 1:服务器监听 2:客户端发出请求 3:建立连接 4:通信 三:一个简单的例子:服务器端每隔一段时间 ...
- Android之Socket通信、List加载更多、Spinner下拉列表
Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信.两者的最大差异在于,http连接使用的是“请求—响应方式”,即在请求时建立连接通道,当客户端向服务器发送请求后,服务 ...
- .NET开源高性能Socket通信中间件Helios介绍及演示
一:Helios是什么 Helios是一套高性能的Socket通信中间件,使用C#编写.Helios的开发受到Netty的启发,使用非阻塞的事件驱动模型架构来实现高并发高吞吐量.Helios为我们大大 ...
随机推荐
- BZOJ 2745: [HEOI2012]Bridge
2745: [HEOI2012]Bridge Time Limit: 30 Sec Memory Limit: 128 MBSubmit: 199 Solved: 90[Submit][Statu ...
- 【BZOJ3675】【Apio2014】序列分割
Description 传送门 Solution 之前我也遇到过一次这种"两段之和乘积作为贡献"的问题:考虑把这一种\((\sum) *(\sum)\)的形式拆括号,就可以发现 ...
- Linux命令之ipcalc
ipcalc命令是一个简单的ip地址计算器,可以完成简单的IP地址计算任务.参数: -b:由给定的IP地址和网络掩码计算出广播地址: -4:ipv4: -6:ipv6: -h:显示给定IP地址所对应的 ...
- 解题:USACO13JAN Island Travels
题面 好像没啥可说的,就当练码力了...... 先用BFS跑出岛屿,然后跑最短路求岛屿间的距离,最后状压DP得出答案 注意细节,码码码2333 #include<set> #include ...
- PHP获取图片主题颜色
(1)工具类:pictureColor.php class pictureColor{ /** * 获取颜色使用库类型 */ public $type = 'gd'; ...
- web服务器nginx和apache的对比分析
今天准备较详细的对比一下apache httpd与nginx两个web服务器的异同点.优缺点.由于我并不是做web开发的,所以有什么理解错误还请指出,想要了解它们是因为工作中有时候会用到它, ...
- E. Mahmoud and Ehab and the function Codeforces Round #435 (Div. 2)
http://codeforces.com/contest/862/problem/E 二分答案 一个数与数组中的哪个数最接近: 先对数组中的数排序,然后lower_bound #include &l ...
- bzoj 2243
2243: [SDOI2011]染色 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 8800 Solved: 3305[Submit][Status ...
- Qt error ------ no matching function for call to QObject::connect(QSpinBox*&, <unresolved overloaded function type>, QSlider*&, void (QAbstractSlider::*)(int))
connect(ui->spinBox_luminosity,&QSpinBox::valueChanged, ui->horizontalSlider_luminosity, & ...
- Docker图形界面管理之DockerUI
DockerUI DockerrUI是一个基于Docker API提供图形化页面简单的容器管理系统,支持容器管理.镜像管理. 1.1 下载镜像 docker pull abh1nav/dockerui ...