客户端

import socket
import time sk = socket.socket() # 第一步:创建socket对象
address = ('127.0.0.1', 8080) # 协议是ip+端口(类型元组)
sk.connect(address) # 第二步:建立链接
while True:
inp = input('客户端>>>>>>>>>\n')
if inp == 'exit':
break
sk.send(bytes(inp, 'utf8')) # 第三步:请求数据
time.sleep(1) # low方法防止粘包
data = sk.recv(1024) # 接收确认信息
print("接收服务端的数据", str(data, 'utf8'))
sk.close()

  服务端

import socket

# family type
# AF_INET,AF_INET6
# AF_UNIX
# SOCK_STREAM:: TCP
# SOCK_DGRAM :: UDP
# sk只负责绑定端口等待链接,发送接收消息用conn。
sk = socket.socket() # 默认参数tcp
address = ('127.0.1', 8080)
sk.bind(address) # 绑定ip协议和端口
sk.listen(3) # 定义最大可以挂起连接数。
print('服务的waiting.......')
while 1:
conn, addr = sk.accept() # 等待接收来自客户端的信息
print(addr)
while 1:
try:
data = conn.recv(1024)
except Exception:
break
if not data: break
print('接收到来自客户端的信息......', str(data, 'utf8'))
inp = input('》》》》》》》》')
conn.send(bytes(inp, 'utf8'))

  使用多线程版

import socketserver

class MyServer(socketserver.BaseRequestHandler):
# 重写父类的方法
def handle(self):
print('waiting.......')
while 1:
conn = self.request
print(self.client_address)
while 1:
try:
data = conn.recv(1024)
except Exception:
break
if not data:
break
print('......', str(data, 'utf8'))
inp = input('》》》》》》》》')
conn.sendall(bytes(inp, 'utf8'))
conn.close() if __name__ == '__main__':
host = '127.0.0.1'
ip = '8080'
server = socketserver.ThreadingTCPServer((host, ip), MyServer)#多线程通话
# 不会出现在一个客户端结束后,当前服务器端就会关闭或者报错,而是继续运行,与其他的客户端继续进行通话。
server.serve_forever()

  

python socket编程入门级的更多相关文章

  1. Python Socket 编程——聊天室示例程序

    上一篇 我们学习了简单的 Python TCP Socket 编程,通过分别写服务端和客户端的代码了解基本的 Python Socket 编程模型.本文再通过一个例子来加强一下对 Socket 编程的 ...

  2. python/socket编程之粘包

    python/socket编程之粘包 粘包 只有TCP有粘包现象,UDP永远不会粘包. 首先需要掌握一个socket收发消息的原理 发送端可以是1k,1k的发送数据而接受端的应用程序可以2k,2k的提 ...

  3. PYTHON SOCKET编程简介

    原文地址: PYTHON SOCKET编程详细介绍   Python 提供了两个基本的 socket 模块. 第一个是 Socket,它提供了标准的 BSD Sockets API. 第二个是 Soc ...

  4. python socket编程笔记

    用python实现一个简单的socket网络聊天通讯 (Linux --py2.7平台与windows--py3.6平台) 人生苦短之我用Python篇(socket编程) python之路 sock ...

  5. [Python_7] Python Socket 编程

    0. 说明 Python Socket 编程 1. TCP 协议 [TCP Server] 通过 netstat -ano 查看端口是否开启 # -*-coding:utf-8-*- "&q ...

  6. Python Socket 编程示例 Echo Server

    简评:我们已经从「Python Socket 编程概览」了解了 socket API 的概述以及客户端和服务器的通信方式,接下来让我们创建第一个客户端和服务器,我们将从一个简单的实现开始,服务器将简单 ...

  7. Python Socket 编程——聊天室演示样例程序

    上一篇 我们学习了简单的 Python TCP Socket 编程,通过分别写服务端和client的代码了解主要的 Python Socket 编程模型.本文再通过一个样例来加强一下对 Socket ...

  8. python socket编程入门(编写server实例)+send 与sendall的区别与使用方法

    python 编写server的步骤: 1. 第一步是创建socket对象.调用socket构造函数.如: socket = socket.socket( family, type ) family参 ...

  9. 第九章:Python高级编程-Python socket编程

    第九章:Python高级编程-Python socket编程 Python3高级核心技术97讲 笔记 9.1 弄懂HTTP.Socket.TCP这几个概念 Socket为我们封装好了协议 9.2 cl ...

随机推荐

  1. BZOJ3244 NOI2013树的计数(概率期望)

    容易发现的一点是如果确定了每一层有哪些点,树的形态就确定了.问题变为划分bfs序. 考虑怎样划分是合法的.同一层的点在bfs序中出现顺序与dfs序中相同.对于dfs序中相邻两点依次设为x和y,y至多在 ...

  2. MT【143】统一分母

    已知$a,b>0$,则$m=\dfrac{b^2+2}{a+b}+\dfrac{a^2}{ab+1}$的最小值是______ 解答: $$m\geqslant \dfrac{b^2+2}{\sq ...

  3. 3.11 - 3.12 A day with Google

    补了一番游记. 找了一个本科学弟一起去上海游玩.本来老板还要我周一过去讨论寒假阅读的论文,总算是把讨论时间挪到周六了. 兴冲冲地买好车票后就开始期待上海Google office的神秘之旅. upda ...

  4. tokenizer

    http://blog.csdn.net/beyond__devil/article/details/52829241

  5. Python之旅:集合

    Python数据类型 #作用:去重,关系运算, #定义: 知识点回顾 可变类型是不可hash类型 不可变类型是可hash类型 #定义集合: 集合:可以包含多个元素,用逗号分割, 集合的元素遵循三个原则 ...

  6. CentOS 6.6下配置本地yum源与网络yum源

    一.本地yum源 1.系统默认已经安装了可使用yum的软件包,所以可以直接配置: [root@localhost ~]# cd /etc/yum.repos.d/                    ...

  7. 关于JavaScript诞生之初的趣事

    我在读很多优秀的JavaScript源码时候常常被它诡异的语法搞的精疲力尽,所以时不时的加固JavaScript基础知识是十分有必要的,这些知识每次温故或者你换个角度去思考都能收获颇多,那么如此深不可 ...

  8. iterm2切换显示屏vim乱行解决

    http://note.youdao.com/noteshare?id=5aec9d82cc3a95b6909e9966b4aa3227

  9. select标签和多行文本标签

    一.多行文本textarea <form> <div> <textarea name="more"></textarea> < ...

  10. K8S从私有仓库拉取镜像

    通常来讲,我们在通过公共镜像仓库拉取docker镜像的时候,不需要任何的认证操作,但我们在构建了企业的私有镜像以后,就不得不在拉取镜像之前通过用户名密码来完成认证. 在docker单机环境中,我们可以 ...