目的:实现两台机器之间的通信。也就是说一个作为服务端(时刻监听接收数据),另一个作为客户端(发送数据)。

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通信的更多相关文章

  1. python3.7 socket通信

    def OpenClient(self,e): global line line = socket.socket(socket.AF_INET,socket.SOCK_STREAM) line.bin ...

  2. 基于TCP与UDP协议的socket通信

    基于TCP与UDP协议的socket通信 C/S架构与初识socket 在开始socket介绍之前,得先知道一个Client端/服务端架构,也就是 C/S 架构,互联网中处处充满了 C/S 架构(Cl ...

  3. 我看不下去鸟。。。。Java和C#的socket通信真的简单吗?

    这几天在博客园上看到好几个写Java和C#的socket通信的帖子.但是都为指出其中关键点. C# socket通信组件有很多,在vs 使用nuget搜索socket组件有很多类似的.本人使用的是自己 ...

  4. php简单实现socket通信

    socket通信的原理在这里就不说了,它的用途还是比较广泛的,我们可以使用socket来做一个API接口出来,也可以使用socket来实现两个程序之间的通信,我们来研究一下在php里面如何实现sock ...

  5. Socket通信类

    package com.imooc; import java.io.BufferedReader; import java.io.IOException; import java.io.InputSt ...

  6. AgileEAS.NET SOA 中间件平台.Net Socket通信框架-介绍

    一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...

  7. socket通信

    socket通信 一:socket基于Tcp连接,数据传输有保证 二:socket连接的建立过程: 1:服务器监听 2:客户端发出请求 3:建立连接 4:通信 三:一个简单的例子:服务器端每隔一段时间 ...

  8. Android之Socket通信、List加载更多、Spinner下拉列表

    Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信.两者的最大差异在于,http连接使用的是“请求—响应方式”,即在请求时建立连接通道,当客户端向服务器发送请求后,服务 ...

  9. .NET开源高性能Socket通信中间件Helios介绍及演示

    一:Helios是什么 Helios是一套高性能的Socket通信中间件,使用C#编写.Helios的开发受到Netty的启发,使用非阻塞的事件驱动模型架构来实现高并发高吞吐量.Helios为我们大大 ...

随机推荐

  1. where EXISTS (子查询)多对多中通过中间表查对方列表

    用户表A,小组表B,小组和用户是多对多关系,中间有个中间表M 已知 小组 id 即teamId ,想知道这个小组中的用户列表信息,可以如下写sql: select * from A a where E ...

  2. Java5的新特性

    原文出处:xixicat 序 这是Java语言特性系列的第一篇,从java5的新特性开始讲起.初衷就是可以方便的查看语言的演进历史. 特性列表 泛型 枚举 装箱拆箱 变长参数 注解 foreach循环 ...

  3. 无法将网络更改为桥接状态 没有VMent0

    本文主要分享 VMware 10.0.2 报错信息:无法将网络更改为桥接状态的解决经验 工具/原料   VMware 10.0.2 方法/步骤   1 故障现象,导致虚拟机无法正常上网   设备管理器 ...

  4. windows环境下批处理实现守护进程

    这个脚本提供两种方式守护,一种是通过进程名,但对于进程名都是java.exe的java程序不适用,另一种是通过netstat查找应用程序所监听的端口是否正在被监听.这两种方式可以在脚本中通过两个冒号注 ...

  5. webapi框架搭建-安全机制(一)

    本系列博客链接:webapi框架搭建系列博客 前言 webapi接口是开放给外部使用的,包括接口的地址,传参的规范,还有返回结果的说明.正因为接口的开放性,使得接口的安全很重要.试想一下,用抓包工具( ...

  6. bzoj千题计划117:bzoj1026: [SCOI2009]windy数

    http://www.lydsy.com/JudgeOnline/problem.php?id=1026 数位DP 如果前一位填的是0, 0是前导0,下一位可以随便填 0不是前导0,下一位不能填1 为 ...

  7. IIS8.5关于“ 配置错误 不能在此路径中使用此配置节”的解决办法

    今天刚安装好IIS8.5, 我的系统是win8.1 enterprise版本. 建了一个简单的页面准备调试,却发现了这个错误: 详细错误信息模块 IIS Web Core 通知 BeginReques ...

  8. CSS3实战-文字篇

    text-shadow的大作用 多颜色阴影效果,用逗号分隔text-shaodow即可. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr ...

  9. Richard Stallman:让我们关注和尊敬自由软件教父

    1953年,Richard Stallman生于美国纽约曼哈顿区.在度过了并不快乐的童年之后,他在哈佛大学找到了自己的家.在MIT人工智能实验室工作期间,展露出了自己的计算 机天赋.对他来说,开发操作 ...

  10. Java内存模型简析

    1.多线程基础 线程通信,是指线程之间以何种机制来交换信息.其中通信的机制有两种:内存共享和消息传递.内存共享是指线程之间通过写-读内存中的公共状态隐式进行通讯(Java):消息传递在线程之间没有公共 ...