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 ...
随机推荐
- jquery fadeIn用法
$("#msgSpan").fadeIn("slow"); setTimeout('$("#msgSpan").hide("slo ...
- 将百度坐标转换的javascript api官方示例改写成传统的回调函数形式
改写前: 百度地图中坐标转换的JavaScript API示例官方示例如下: var points = [new BMap.Point(116.3786889372559,39.90762965106 ...
- cvCvtColor与cvtColor区别
用到了rgb转灰度图功能,查到两个函数,发现名字很像,功能也一样,但是参数类型不一样. 记录一下. 可以看声明,cvCvtColor是c语言风格接口. /* Converts input array ...
- Chapter 7. Design and Performance
本章将对MPEG4及H.264的实现细节进行讲解和比对. Motion Estimation 衡量运动估计的好坏有三种函数(第228页):MSE,MAE和SAE,其中由于SAE运算速度最快所以采用的最 ...
- USACO The Castle
首先看一下题目. The CastleIOI'94 - Day 1 In a stroke of luck almost beyond imagination, Farmer John was sen ...
- java怎么处理json数据
json = new JSONObject(data); int which = json.optInt("which", -1); String label = json.opt ...
- Android Shape Divider
安卓框架提供了一种LinearLayout 内部布局元素分割线的实现,建立一个指定长宽的矩形Shape: <?xml version="1.0" encoding=" ...
- EJB系列 - EJB高级概念
本人博客文章网址:https://www.peretang.com/ejb-advanced-concepts/ EJB内幕 幕后的EJB:容器会为每一个bean实例自动生成称为EJB对象的代理, 由 ...
- VB6之反编译工具VBRezQ
该软件的下载地址:http://www.xiazaiba.com/html/5276.html 网站上是这么介绍的: VBRezQ是一个针对VB程序的反编译软件.VBRezQ反编译的可读性尤其对早期版 ...
- usaco training 4.2.2 The Perfect Stall 最佳牛栏 题解
The Perfect Stall题解 Hal Burch Farmer John completed his new barn just last week, complete with all t ...