python--DenyHttp项目(1)--socket编程:客户端与服务器端
查找了许多资料,实现了客户端与服务器端的连接,通过虚拟机进行测试
服务器端IP:192.168.37.129 端口1122
客户端IP: 192.168.37.1 端口1122
Server:
#coding:utf-8
from socket import *
class Dserver():
def __init__(self):
self.HOST = '192.168.37.129'
self.PORT = 1122
self.BUFSIZE = 1024
self.ADDR = (self.HOST, self.PORT)
self.sock = socket(AF_INET, SOCK_STREAM)
self.sock.bind(self.ADDR)
def listener(self):
self.sock.listen(5)
STOP_CHAT = False
while not STOP_CHAT:
print('等待接入,侦听端口:%d' % (self.PORT))
topClientSock, addr = self.sock.accept()
print('接受连接,客户端地址:',addr[0])
while True:
try:
data = topClientSock.recv(self.BUFSIZE)
except:
topClientSock.close()
print("服务器关闭!")
break
if not data:
print("数据为空")
break
s='把服务器收到的从%s发送给我的信息:%s 发回来' %(addr[0],data.decode('utf-8'))
print(s)
topClientSock.send(s.encode('utf-8'))
print(data.decode('utf-8'))
STOP_CHAT=(data.decode('utf-8').upper()=="QUIT")
if STOP_CHAT:
break
topClientSock.close()
self.sock.close()
if __name__ == '__main__':
serverDemo = Dserver()
serverDemo.listener()
Client:
#coding:utf-8
from socket import *
class Dclient():
def __init__(self):
self.HOST = '192.168.37.129'
self.PORT = 1122
self.BUFSIZE = 1024
self.ADDR = (self.HOST, self.PORT)
def listener(self):
self.client = socket(AF_INET,SOCK_STREAM)
self.client.connect(self.ADDR)
while True:
data = input('>')
if not data:
break
self.client.send(data.encode('utf-8'))
print('发送消息给%s: %s' % (self.HOST, data))
if data.upper() == 'QUIT':
break
data = self.client.recv(self.BUFSIZE)
if not data:
break
print('接受的消息 %s' % (data.decode('utf-8')))
if __name__ == '__main__':
clientDemo = Dclient()
clientDemo.listener()
测试数据:


python--DenyHttp项目(1)--socket编程:客户端与服务器端的更多相关文章
- Socket编程——客户端,服务器端的读写操作
URL网络编程,最大的特征就是一对一的响应! 1:客户端“写”,服务器端用于“读” package coreBookSocket2; import java.io.InputStreamReader; ...
- Python之路,Day8 - Socket编程进阶
Python之路,Day8 - Socket编程进阶 本节内容: Socket语法及相关 SocketServer实现多并发 Socket语法及相关 socket概念 socket本质上就是在2台 ...
- 【爬坑】Python 3.6 在 Socket 编程时出现类型错误 TypeError: a bytes-like object is required, not 'str'
1. 问题描述 Python 3.6 在 Socket 编程时出现错误如下 Traceback (most recent call last): File "F:/share/IdeaPro ...
- Python(七)Socket编程、IO多路复用、SocketServer
本章内容: Socket IO多路复用(select) SocketServer 模块(ThreadingTCPServer源码剖析) Socket socket通常也称作"套接字" ...
- Python网络编程之socket编程
什么是Socket? Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面 ...
- Python socket编程客户端与服务端通信
[本文出自天外归云的博客园] 目标:实现客户端与服务端的socket通信,消息传输. 客户端 客户端代码: from socket import socket,AF_INET,SOCK_STREAM ...
- python 基础(十五) socket编程
SOCKET TCP协议: 有请求 有响应 称之为 tcp协议 是面向连接的协议 就是在收发数据之前 必须先要建立一个可靠的链接 三次握手 如:网站 UDP协议: 是一个非链接的协议 传输之前不需要键 ...
- Day8 - Python网络编程 Socket编程
Python之路,Day8 - Socket编程进阶 本节内容: Socket语法及相关 SocketServer实现多并发 Socket语法及相关 socket概念 socket本质上就是在2台 ...
- 基于win32的socket编程及程序实现
初步研究了win32平台的Windows Sockets,它是Microsoft Windows的网络程序设计接口,它是从Berkeley Sockets扩展而来的,以动态链接库的形式提供给我们使用. ...
- 读懂Java中的Socket编程
Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一.如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的.本文会介绍一下基于TCP/IP的S ...
随机推荐
- is not allowed to connect to this MySQL server
解决办法: 这是告诉你没有权限连接指定IP的主机mysql --user=root -p; use mysql; GRANT SELECT,INSERT,UPDATE,DELETE ON host.* ...
- php解决表单重复提交
php解决表单重复提交时间:2015-2-28 | 评论:1条评论 | 被查看了 189 次 | 标签:php, W3cui重复提交是我们开发中会常碰到的一个问题,除了我们使用js来防止表单的重复提交 ...
- fiddler4手机抓包
- Spring Boot 集成swagger实例
原文:https://github.com/x113773/testall/issues/5 1. 首先添加maven依赖``` <dependency> <groupId>i ...
- [leetcode-547-Friend Circles]
There are N students in a class. Some of them are friends, while some are not. Their friendship is t ...
- Ubantu 16.4 samba安装配置
本文总结了Ubantu 16.04 环境下的samba安装.配置及使用.本文为原创,也是我的第一篇博客,以后会经常写博客,记录自己的学习.总结及研究,让博客见证着我成长的轨迹. 下文中的所有命令均使用 ...
- 浅谈angular中的promise
promise目的就是为了跳出回调地狱.老掉牙的东西,大神轻拍. 举个最简单的例子:请求数据(getData),解析数据(executeData),显示数据(showData). //获取数据 fun ...
- javascript精度问题与调整
一个经典的问题: 0.1+0.2==0.3 答案是:false 因为:0.1+0.2=0.30000000000000004 第一次看到这个结果就是无比惊讶,下巴碰到地上,得深入了解下问题出在哪里,该 ...
- Spark Standalone Mode Configuration
For currently popular distributed framework Spark, here is the intro and step to configure the spark ...
- OpenStack(企业私有云)万里长征第四步——DevStack整体安装规划及使用
一.前言 前期成功通过DevStack安装OpenStack,现将从机房规划到虚拟机搭建的整个过程总结如下,以供日后查阅或有需之人参考. 二.机房规划 这个整个安装过程的重点,能不能成功就看规划的如何 ...