100% found this document useful (4 votes)
58 views

Full Download Python Network Programming Cookbook Kathiravelu PDF

Programming

Uploaded by

swalusgonim
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (4 votes)
58 views

Full Download Python Network Programming Cookbook Kathiravelu PDF

Programming

Uploaded by

swalusgonim
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 62

Download the full version of the textbook now at textbookfull.

com

Python Network Programming Cookbook


Kathiravelu

https://textbookfull.com/product/python-network-
programming-cookbook-kathiravelu/

Explore and download more textbook at https://textbookfull.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Python Network Programming Cookbook Practical solutions to


overcome real world networking challenges 2nd Edition
Pradeeban Kathiravelu
https://textbookfull.com/product/python-network-programming-cookbook-
practical-solutions-to-overcome-real-world-networking-challenges-2nd-
edition-pradeeban-kathiravelu/
textbookfull.com

Python GUI Programming Cookbook Meier

https://textbookfull.com/product/python-gui-programming-cookbook-
meier/

textbookfull.com

Python GUI Programming Cookbook Burkhard A. Meier

https://textbookfull.com/product/python-gui-programming-cookbook-
burkhard-a-meier/

textbookfull.com

Family and Gender in Renaissance Italy 1300 1600


incomplete Thomas Kuehn

https://textbookfull.com/product/family-and-gender-in-renaissance-
italy-1300-1600-incomplete-thomas-kuehn/

textbookfull.com
Toward a New (Old) Theory of Responsibility: Moving beyond
Accountability Daryl Koehn

https://textbookfull.com/product/toward-a-new-old-theory-of-
responsibility-moving-beyond-accountability-daryl-koehn/

textbookfull.com

The White Confocal Microscopic Optical Sectioning in all


Colors 1st Edition Rolf Theodor Borlinghaus (Auth.)

https://textbookfull.com/product/the-white-confocal-microscopic-
optical-sectioning-in-all-colors-1st-edition-rolf-theodor-borlinghaus-
auth/
textbookfull.com

A Constitutional History of the Kingdom of Eswatini


(Swaziland), 1960–1982 Hlengiwe Portia Dlamini

https://textbookfull.com/product/a-constitutional-history-of-the-
kingdom-of-eswatini-swaziland-1960-1982-hlengiwe-portia-dlamini/

textbookfull.com

Asian Cookbook 1st Edition Barbara Riddle

https://textbookfull.com/product/asian-cookbook-1st-edition-barbara-
riddle/

textbookfull.com

Perspectives on Philosophy of Management and Business


Ethics Including a Special Section on Business and Human
Rights 1st Edition Jacob Dahl Rendtorff (Eds.)
https://textbookfull.com/product/perspectives-on-philosophy-of-
management-and-business-ethics-including-a-special-section-on-
business-and-human-rights-1st-edition-jacob-dahl-rendtorff-eds/
textbookfull.com
Broken Ride Men of Valor MC 1st Edition Mila Crawford
Crawford Mila

https://textbookfull.com/product/broken-ride-men-of-valor-mc-1st-
edition-mila-crawford-crawford-mila/

textbookfull.com
Python Network Programming Cookbook
Second Edition

Overcome real-world networking challenges

Pradeeban Kathiravelu
Dr. M. O. Faruque Sarker

BIRMINGHAM - MUMBAI
Python Network Programming Cookbook
Second Edition
Copyright © 2017 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or
transmitted in any form or by any means, without the prior written permission of the
publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the
information presented. However, the information contained in this book is sold without
warranty, either express or implied. Neither the authors, nor Packt Publishing, and its
dealers and distributors will be held liable for any damages caused or alleged to be caused
directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the
companies and products mentioned in this book by the appropriate use of capitals.
However, Packt Publishing cannot guarantee the accuracy of this information.

First published: March 2014

Second edition: August 2017

Production reference: 1080817


Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham
B3 2PB, UK.

ISBN 978-1-78646-399-9

www.packtpub.com
Credits

Authors Copy Editors


Pradeeban Kathiravelu Safis Editing
Dr. M. O. Faruque Sarker Juliana Nair

Reviewers Project Coordinator


Dr. S. Gowrishankar Judie Jose
Michael Bright

Commissioning Editor Proofreader


Kartikey Pandey Safis Editing

Acquisition Editor Indexer


Rahul Nair Aishwarya Gangawane

Content Development Editor Graphics


Abhishek Jadhav Kirk D'Penha

Technical Editor Production Coordinator


Mohd Riyan Khan Aparna Bhagat
About the Author
Pradeeban Kathiravelu is an open source evangelist. He is a Ph.D. researcher at INESC-ID
Lisboa/Instituto Superior Tecnico, Universidade de Lisboa, Portugal, and Universite
Catholique de Louvain, Belgium. He is a Fellow of Erasmus Mundus Joint Degree in
Distributed Computing (EMJD-DC), researching a software-defined approach to quality of
service and data quality in multi-tenant clouds.

Pradeeban holds a master of science degree, Erasmus Mundus European Master in


Distributed Computing (EMDC), from Instituto Superior Tecnico, Portugal and KTH Royal
Institute of Technology, Sweden. He also holds a first class bachelor of science in
engineering (Hons) degree, majoring in computer science and engineering, from the
University of Moratuwa, Sri Lanka. His research interests include Software-Defined
Networking (SDN), distributed systems, cloud computing, web services, big data in
biomedical informatics, Network Functions Virtualizations (NFV), and data mining. He is
very interested in free and open source software development and has been an active
participant in the Google Summer of Code (GSoC) program since 2009, as a student and as a
mentor.

Pradeeban has published several conference papers and co-authored a few book chapters.
He has also worked on OpenDaylight Cookbook and Learning OpenDaylight as a technical
reviewer. Python Network Programming Cookbook, Second Edition (2017) is his first book as an
author, and he is quite excited about it.

I would like to thank my readers for the interest in the book. Please feel free to contact me if
you need any assistance in the topics or the recipes, beyond what we have discussed in the
book. I would like to thank the entire editorial team at Packt, including Abhishek Jadhav,
Rahul Nair, and Mohd Riyan Khan. I would like to extend my thanks to the Linux
Foundation for their open source projects on softwarization of networks and systems. I
would like to thank my friends and colleagues who helped me in various ways. I would like
to thank Prof. Luís Veiga (INESC-ID Lisboa), my MSc and Ph.D. advisor, for sharing his
wisdom and encouragement throughout my stay in Instituto Superior Técnico. I would
like to thank him for being my mentor since 2012. I would also like to thank Prof. Ashish
Sharma (Emory University, Atlanta) for his guidance and motivation.

My special thanks go to my loving wife, Juejing Gu. This book would not be a reality
without her continuous support and creative suggestions. Her tireless efforts helped me
always be on time without missing the deadlines.
I would like to thank my mom, Selvathie Kathiravelu, for her support.
Dr. M. O. Faruque Sarker is a software architect based in London, UK, where he has been
shaping various Linux and open source software solutions, mainly on cloud computing
platforms, for commercial companies, educational institutions, and multinational
consultancies. Over the past 10 years, he has been leading a number of Python software
development and cloud infrastructure automation projects. In 2009, he started using
Python, where he was responsible for shepherding a fleet of miniature E-puck robots at the
University of South Wales, Newport, UK. Later, he honed his Python skills, and he was
invited to work on the Google Summer of Code (2009/2010) programs for contributing to
the BlueZ and Tahoe-LAFS open source projects. He is the author of Python Network
Programming Cookbook and Learning Python Network Programming both by Packt Publishing.

He received his Ph.D. in multi-robot systems from the University of South Wales. He is
currently working at University College London. He takes an active interest in cloud
computing, software security, intelligent systems, and child-centric education. He lives in
East London with his wife, Shahinur, and daughter, Ayesha.

All praises and thanks to Allah, the God who is the Merciful and the Beneficent. I would
not be able to finish this book without the help of God.I would like to thank everyone who
has contributed to the publication of this book, including the publisher, technical reviewers,
editors, my family and friends for their sacrifice of time, encouraging words, and smiles,
especially my wife Shahinur Rijuani for her love and support in my work. I also thank the
readers who have patiently been waiting for this book and who have given me lots of
valuable feedback.
About the Reviewers
Dr. S. Gowrishankar is currently working as an associate professor in the Department of
Computer Science and Engineering at Dr. Ambedkar Institute of Technology, Bengaluru,
Karnataka, India.

He received his Ph.D. in Engineering from Jadavpur University, Kolkata, West Bengal,
India in 2010, MTech in software engineering and BE in computer science and engineering
from Visvesvaraya Technological University (VTU), Belagavi, Karnataka, India in the year
2005 and 2003 respectively.

From 2011 to 2014 he worked as a senior research scientist and tech lead at Honeywell
Technology Solutions, Bengaluru, Karnataka, India.

He has published several papers in various reputed international journals and conferences.
He is serving as an editor and reviewer for various prestigious international journals. He is
also a member of IEEE, ACM, CSI, and ISTE.

He has delivered many keynote addresses and invited talks throughout India on a variety
of subjects related to computer science and engineering. He was instrumental in organizing
several conferences, workshops, and seminars. He has also served on the panel of a number
of academic bodies of universities and autonomous colleges as a BOS and BOE member.

His current research interests are mainly focused on data science, including its technical
aspects as well as its applications and implications. Specifically, he is interested in the
applications of Machine Learning, Data Mining, and Big Data Analytics in Healthcare.

I would like to acknowledge my earnest gratitude to my wife, Roopa K M, for her constant
source of support and encouragement throughout this assignment. I’m truly thankful to
almighty God for having her in my life and give her my deepest expression of love and
appreciation.
Michael Bright, RHCE/RHCSA, is a solution architect working in the HPE EMEA Customer
Innovation Center.

He has strong experience across Cloud and Container technologies (Docker, Kubernetes,
AWS, GCP, Azure) as well as NFV/SDN.

Based in Grenoble, France, he runs a Python user group and is a co-organizer of the Docker
and FOSS Meetup groups. He has a keen interest in Container, Orchestration, and
Unikernel technologies on which he has presented and run training tutorials in several
conferences.
He has presented many times on subjects diverse as NFV, Docker, Container Orchestration,
Unikernels, Jupyter Notebooks, MongoDB, and Tmux.

Michael has a wealth of experience across pure research, R&D and pre-sales consulting
roles.
www.PacktPub.com
For support files and downloads related to your book, please visit www.PacktPub.com.

Did you know that Packt offers eBook versions of every book published, with PDF and
ePub files available? You can upgrade to the eBook version at www.PacktPub.comand as a
print book customer, you are entitled to a discount on the eBook copy. Get in touch with us
at service@packtpub.com for more details.

At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a
range of free newsletters and receive exclusive discounts and offers on Packt books and
eBooks.

https://www.packtpub.com/mapt

Get the most in-demand software skills with Mapt. Mapt gives you full access to all Packt
books and video courses, as well as industry-leading tools to help you plan your personal
development and advance your career.

Why subscribe?
Fully searchable across every book published by Packt
Copy and paste, print, and bookmark content
On demand and accessible via a web browser
Customer Feedback
Thanks for purchasing this Packt book. At Packt, quality is at the heart of our editorial
process. To help us improve, please leave us an honest review on this book's Amazon page
at https://www.amazon.com/dp/1786463997.

If you'd like to join our team of regular reviewers, you can e-mail us at
customerreviews@packtpub.com. We award our regular reviewers with free eBooks and
videos in exchange for their valuable feedback. Help us be relentless in improving our
products!
Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
I dedicate this book to the world, in memory of my dad, Kanapathipillai Kathiravelu.
Table of Contents
Preface 1
Chapter 1: Sockets, IPv4, and Simple Client/Server Programming 11
Introduction 12
Printing your machine's name and IPv4 address 12
Getting ready 12
How to do it... 13
How it works... 15
Retrieving a remote machine's IP address 16
How to do it... 16
How it works... 17
Converting an IPv4 address to different formats 18
How to do it... 18
How it works... 19
Finding a service name, given the port and protocol 19
Getting ready 19
How to do it... 19
How it works... 20
Converting integers to and from host to network byte order 20
How to do it... 20
How it works... 21
Setting and getting the default socket timeout 22
How to do it... 22
How it works... 23
Handling socket errors gracefully 23
How to do it... 23
How it works... 25
Modifying a socket's send/receive buffer sizes 26
How to do it... 26
How it works... 28
Changing a socket to the blocking/non-blocking mode 28
How to do it... 28
How it works... 29
Reusing socket addresses 29
How to do it... 30
How it works... 32
Printing the current time from the internet time server 32
Getting ready 32
How to do it... 33
How it works... 34
Writing an SNTP client 34
How to do it... 34
How it works... 35
Writing a simple TCP echo client/server application 36
How to do it... 36
How it works... 39
Writing a simple UDP echo client/server application 39
How to do it... 39
How it works... 42
Chapter 2: Multiplexing Socket I/O for Better Performance 43
Introduction 43
Using ForkingMixIn in your socket server applications 44
How to do it... 44
How it works... 47
Using ThreadingMixIn in your socket server applications 48
Getting ready 48
How to do it... 48
How it works... 50
Writing a chat server using select.select 50
How to do it... 51
How it works... 58
Multiplexing a web server using select.epoll 58
How to do it... 58
How it works... 61
Multiplexing an echo server using Diesel concurrent library 62
Getting ready 62
How to do it... 64
How it works... 66
Chapter 3: IPv6, Unix Domain Sockets, and Network Interfaces 67
Introduction 67
Forwarding a local port to a remote host 68
How to do it... 68
How it works... 71

[ ii ]
Pinging hosts on the network with ICMP 72
Getting ready 72
How to do it... 72
How it works... 76
Waiting for a remote network service 77
How to do it... 77
How it works... 80
Enumerating interfaces on your machine 80
Getting ready 81
How to do it... 81
How it works... 82
Finding the IP address for a specific interface on your machine 83
Getting ready 83
How to do it... 83
How it works... 84
Finding whether an interface is up on your machine 85
Getting ready 85
How to do it... 85
How it works... 86
Detecting inactive machines on your network 87
Getting ready 87
How to do it... 87
How it works... 89
Performing a basic IPC using connected sockets (socketpair) 89
Getting ready 89
How to do it... 90
How it works... 91
Performing IPC using Unix domain sockets 91
How to do it... 91
How it works... 94
Finding out if your Python supports IPv6 sockets 94
Getting ready 94
How to do it... 95
How it works... 96
Extracting an IPv6 prefix from an IPv6 address 97
How to do it... 97
How it works... 99
Writing an IPv6 echo client/server 99
How to do it... 99

[ iii ]
How it works... 102
Chapter 4: Programming with HTTP for the Internet 103
Introduction 104
Downloading data from an HTTP server 104
How to do it... 104
How it works... 107
Serving HTTP requests from your machine 107
How to do it... 108
How it works... 110
Extracting cookie information after visiting a website 110
How to do it... 110
How it works... 113
Submitting web forms 114
Getting ready 114
How to do it... 114
How it works... 116
Sending web requests through a proxy server 116
Getting ready 116
How to do it... 116
How it works... 118
Checking whether a web page exists with the HEAD request 118
How to do it... 119
How it works... 121
Spoofing Mozilla Firefox in your client code 121
How to do it... 121
How it works... 122
Saving bandwidth in web requests with the HTTP compression 122
How to do it... 123
How it works... 125
Writing an HTTP fail-over client with resume and partial downloading 125
How to do it... 126
How it works... 127
Writing a simple HTTPS server code with Python and OpenSSL 128
Getting ready 128
How to do it... 128
How it works... 129
Building asynchronous network applications with Twisted 130
Getting ready 130
How to do it... 131

[ iv ]
How it works... 134
Building asynchronous network applications with Tornado 134
Getting ready 134
How to do it... 134
How it works... 136
Building concurrent applications with Tornado Future 137
Getting ready 137
How to do it... 137
How it works... 140
Chapter 5: Email Protocols, FTP, and CGI Programming 141
Introduction 141
Listing the files in a remote FTP server 142
Getting ready 142
How to do it... 142
How it works... 144
Common error 144
Uploading a local file to a remote FTP server 146
Getting ready 146
How to do it... 146
How it works... 147
Emailing your current working directory as a compressed ZIP file 148
Getting ready 148
How to do it... 148
How it works... 151
See also 152
Downloading your Google email with POP3 152
Getting ready 152
How to do it... 152
How it works... 153
Checking your remote email with IMAP 153
Getting ready 154
How to do it... 154
How it works... 155
Sending an email with an attachment via Gmail SMTP server 156
Getting ready 156
How to do it... 156
How it works... 158
Writing a guestbook for your (Python-based) web server with CGI 158
Getting ready 158

[v]
How to do it... 158
How it works... 162
Finding the mail server from an email address 163
Getting ready 163
How to do it... 164
How it works... 166
Writing a simple SMTP server 166
Getting ready 166
How to do it... 166
How it works... 169
Writing a secure SMTP client using TLS 170
Getting ready 170
How to do it... 170
How it works... 172
Writing an email client with POP3 173
Getting ready 173
How to do it... 174
How it works... 175
Chapter 6: Programming Across Machine Boundaries 176
Introduction 176
Executing a remote shell command using telnet 177
Getting ready 177
How to do it... 177
How it works... 179
Copying a file to a remote machine by SFTP 179
Getting ready 179
How to do it... 180
How it works... 181
Printing a remote machine's CPU information 182
Getting ready 182
How to do it... 182
How it works... 186
Installing a Python package remotely 186
Getting ready 187
How to do it... 187
How it works... 189
Running a MySQL command remotely 189
Getting ready 189
How to do it... 190

[ vi ]
How it works... 193
Transferring files to a remote machine over SSH 193
Getting ready 193
How to do it... 194
How it works... 196
Configuring Apache remotely to host a website 196
Getting ready 197
How to do it... 197
How it works... 199
Chapter 7: Working with Web Services – XML-RPC, SOAP, and REST 201
Introduction 201
Querying a local XML-RPC server 202
Getting ready 202
How to do it... 202
How it works... 204
Writing a multithreaded, multicall XML-RPC server 205
How to do it... 205
How it works... 207
Running an XML-RPC server with a basic HTTP authentication 208
How to do it... 208
How it works... 212
Collecting some photo information from Flickr using REST 213
How to do it... 213
How it works... 217
Searching for SOAP methods from an Amazon S3 web service 217
Getting ready 217
How to do it... 218
How it works... 219
Searching Amazon for books through the product search API 219
Getting ready 220
How to do it... 220
How it works... 222
Creating RESTful web applications with Flask 222
Getting ready 223
How to do it... 223
How it works... 226
Chapter 8: Network Monitoring and Security 227
Introduction 227

[ vii ]
Sniffing packets on your network 228
Getting ready 228
How to do it... 228
How it works... 230
Saving packets in the pcap format using the pcap dumper 230
How to do it... 231
How it works... 234
Adding an extra header in HTTP packets 235
How to do it... 235
How it works... 236
Scanning the ports of a remote host 237
How to do it... 237
How it works... 239
Customizing the IP address of a packet 239
How to do it... 239
How it works... 241
Replaying traffic by reading from a saved pcap file 241
How to do it... 241
How it works... 243
Scanning the broadcast of packets 244
How to do it... 244
How it works... 246
Chapter 9: Network Modeling 247
Introduction 247
Simulating networks with ns-3 248
Getting ready 248
How to do it... 250
How it works... 252
Emulating networks with Mininet 252
Getting ready 253
How to do it... 253
How it works... 255
Distributed network emulation with MaxiNet 255
Getting ready 256
How to do it... 257
How it works... 258
Emulating wireless networks with Mininet-WiFi 259
Getting ready 259
How to do it... 259

[ viii ]
How it works... 263
Extending Mininet to emulate containers 264
Getting ready 265
How to do it... 266
How it works... 270
Chapter 10: Getting Started with SDN 271
Introduction 271
SDN emulation with Mininet 272
Getting ready 272
How to do it... 272
How it works... 275
Developing Software-Defined Networks with OpenDaylight controller 276
Getting ready 276
How to do it... 278
How it works... 281
Developing Software-Defined Networks with ONOS controller 281
Getting ready 282
How to do it... 284
How it works... 286
Developing Software-Defined Networks with Floodlight controller 286
Getting ready 287
How to do it... 290
How it works... 293
Developing Software-Defined Networks with Ryu controller 293
Getting ready 293
How to do it... 294
How it works... 298
Developing Software-Defined Networks with POX controller 299
Getting ready 299
How to do it... 301
How it works... 302
Developing Software-Defined Networks visually with MiniEdit 303
Getting ready 303
How to do it... 303
How it works... 307
Chapter 11: Authentication, Authorization, and Accounting (AAA) 308
Introduction 309
Finding DNS names of a network 309

[ ix ]
Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
Getting ready 309
How to do it... 309
How it works... 311
Finding DNS host information 311
Getting ready 311
How to do it... 311
How it works... 313
Finding DNS resource records 313
Getting ready 315
How to do it... 315
How it works... 318
Making DNS zone transfer 319
Getting ready 319
How to do it... 319
How it works... 323
Querying NTP servers 323
Getting ready 323
How to do it... 323
How it works... 325
Connecting to an LDAP server 325
Getting ready 326
How to do it... 327
How it works... 330
Making LDAP bind 331
Getting ready 331
How to do it... 331
How it works... 333
Reading and writing LDAP 333
Getting ready 333
How to do it... 334
How it works... 335
Authenticating REST APIs with Eve 336
Getting ready 336
How to do it... 336
How it works... 338
Throttling requests with RequestsThrottler 338
Getting ready 339
How to do it... 339
How it works... 342

[x]
Chapter 12: Open and Proprietary Networking Solutions 343
Introduction 343
Configuring Red PNDA 344
Getting ready 344
How to do it... 344
How it works... 347
Configuring VMware NSX for vSphere 6.3.2 348
Getting ready 348
How to do it... 349
How it works... 350
Configuring Juniper Contrail Server Manager 351
Getting ready 351
How to do it... 354
How it works... 355
Configuring OpenContrail controller 355
Getting ready 356
How to do it... 356
How it works... 357
Configuring OpenContrail cluster 357
How to do it... 358
How it works... 363
Interacting with devices running Cisco IOS XR 363
Getting ready 364
How to do it... 364
How it works... 364
Collaborating with Cisco Spark API 365
Getting ready 365
How to do it... 367
How it works... 368
Chapter 13: NFV and Orchestration – A Larger Ecosystem 369
Introduction 369
Building VNFs with OPNFV 370
Getting ready 370
How to do it... 371
How it works... 373
Packet processing with DPDK 376
Getting ready 377
How to do it... 379

[ xi ]
How it works... 379
Parsing BMP messages with SNAS.io 380
Getting ready 381
How to do it... 382
How it works... 386
Controlling drones with a wireless network 387
Getting ready 387
How to do it... 387
How it works... 390
Creating PNDA clusters 390
Getting ready 391
How to do it... 394
How it works... 395
Chapter 14: Programming the Internet 396
Introduction 396
Checking a website status 396
Getting ready 397
How to do it... 397
How it works... 398
Benchmarking BGP implementations with bgperf 398
Getting ready 398
How to do it... 400
How it works... 400
BGP with ExaBGP 401
Getting ready 401
How to do it... 401
Looking glass implementations with Python 402
Getting ready 404
How to do it... 405
How it works... 407
Understanding the internet ecosystem with Python 407
Getting ready 408
How to do it... 409
How it works... 410
Establishing BGP connections with yabgp 410
Getting ready 411
How to do it... 411
How it works... 413

[ xii ]
Index 414

[ xiii ]
Preface
It has been more than 3 years since Python Network Programming Cookbook was first
published. In this second edition, we extend our book to discuss the recent advancements in
the networking industry and network softwarization. The widespread use of Software-
Defined Networking (SDN), Network Functions Virtualization (NFV), and orchestration
have been addressed in detail in the latter chapters while the first eight chapters were taken
from the first edition, improved with a few new recipes based on the feedback from the
readers.

This book is an exploratory guide to network programming in Python. It has touched a


wide range of networking protocols such as TCP/UDP, HTTP/HTTPS, FTP, SMTP, POP3,
IMAP, and CGI. With the power and interactivity of Python, it brings joy and fun to
develop various scripts for performing real-world tasks on network and system
administration, web application development, interacting with your local and remote
network, low-level network packet capture and analysis, and so on. The primary focus of
this book is to give you a hands-on experience on the topics covered. So, this book covers
less theory, but it is packed with practical materials.

This book is written with a DevOps mindset, where a developer is also more or less in
charge of operation, that is, deploying the application and managing various aspects of it,
such as remote server administration, monitoring, scaling-up, and optimizing for better
performance. This book introduces you to a bunch of open-source, third-party Python
libraries, which are ideal to be used in various use cases. We elaborate in detail the
configurations of complex networking systems with helpful hints to ensure that the reader
can follow them without getting stuck.

We hope you will enjoy the recipes presented in this book and extend them to make them
even more powerful and enjoyable.

What this book covers


Chapter 1, Sockets, IPv4, and Simple Client/Server Programming, introduces you to Python's
core networking library with various small tasks and enables you to create your first client-
server application.

Chapter 2, Multiplexing Socket I/O for Better Performance, discusses various useful techniques
for scaling your client/server applications with default and third-party libraries.
Random documents with unrelated
content Scribd suggests to you:
"Why not? is it because he is hiding from honest people?" asked
Brulette. "I think that is worse than being a sorcerer. He must be some one
who has done wrong, or he would not be roaming round at night, and you
wouldn't be forbidden to speak of him."

"I will tell you all about it to-morrow," said Joseph, smiling at our fears.
"To-night, you can think what you please, for I shall tell you nothing more.
Come, Brulette, there's the cuckoo striking midnight. I'll take you home and
leave my bagpipe hidden away in your charge. For I certainly shall not
practise on it in this neighborhood; the time to make myself known has not
yet come."

Brulette said good-night to me very prettily, putting her hand into mine.
But when I saw that she put her arm into Joseph's to go away, jealousy
galloped off with me again, and as they went along the high-road I cut
across the hemp-field and posted myself beneath the hedge to see them
pass. The weather had cleared a little, but there had been a shower, and
Brulette let go of Joseph's arm to pick up her dress, saying, "It is not easy to
walk two together; go in front."

If I had been in José's place I should have offered to carry her over the
muddy places, or, if I had not dared to take her in my arms, I should have
lingered behind her to look at her pretty ankles. But José did nothing of the
kind, he concerned himself about nothing but his bagpipe; and as I saw him
handling it with care and looking lovingly at it, I said to myself that he
hadn't any other love just then.

I returned home, easy in mind in more ways than one, and went to bed,
somewhat fatigued both in body and mind.

But it was not half an hour before Monsieur Parpluche, who had been
amusing himself with the stranger's dogs, came scratching at the door in
search of his master. I rose to let him in, and just then I fancied I heard a
noise in my oats, which were coming up green and thick at the back of the
house. It seemed to me that they were being cropped and trampled by some
four-footed beast who had no business there.
I caught up the first stick that came to hand and ran out, whistling to
Parpluche, who did not obey me but made off, looking for his master, after
snuffing about the house.

Entering the field, I saw something rolling on its back with its paws in
the air, crushing the oats right and left, getting up, jumping about and
browsing quite at its ease. For a moment I was afraid to run after it, not
knowing what kind of beast it was. I could see nothing clearly but its ears,
which were too long for a horse; but the body was too black and stout for a
donkey. I approached it gently; it seemed neither wild nor mischievous, and
then I knew it was a mule, though I had seldom seen one, for we don't raise
them in our part of the country, and the muleteers never pass this way. I was
just going to catch him and already had my hand on his mane when he
threw up his hindquarters and lashing out a dozen kicks which I had
scarcely time to avoid, he leaped like a hare over the ditch and ran away so
quickly that in a moment he was out of sight.

Not wishing to have my oats ruined by the return of the beast, I put off
going to bed till I could have an easy mind. I returned to the house to get
my shoes and waistcoat, and after fastening the doors I went through the
fields in the direction the mule had taken. I had little doubt that he belonged
to the troop of the dark man, Joseph's friend. Joseph had certainly advised
me to see nothing of him, but now that I had touched a living animal I was
afraid of nothing. Nobody likes ghosts; but when you know you are dealing
with solid things it is another affair; and the moment I realized that the dark
man was a man, no matter how strong he was or how much he had daubed
himself over, I didn't care for him any more than I did for a weasel.

You must have heard say that I was one of the strongest fellows of these
parts in my young days; in fact, such as I am now, I am not yet afraid of any
man.

Moreover, I was as nimble as a roach, and I knew that in dangers where


the strength of a man was not enough to save him, it would have needed the
wings of a bird to overtake me in running. Accordingly, having provided
myself with a rope and my own gun (which didn't have consecrated balls,
but could carry truer than my father's), I set out on a voyage of discovery.
I had scarcely taken a couple of hundred steps when I saw three more
animals of the same kind in my brother-in-law's pasture, where they were
behaving themselves just as badly as possible. Like the first brute, they
allowed me to approach them, and then immediately galloped off to a farm
on the estate of Aulnières, where they met another troop of mules capering
about as lively as mice, rearing and kicking in the rising moonlight,—a
regular donkey-chase, which you know is what they call the dance of the
devil's she-asses, when the fairies and the will-o-the-wisps gallop up there
among the clouds.

However, there was really no magic here; but only a great robbery of
pasture, and abominable mischief done to the grain. The crop was not mine,
and I might have said that it was none of my business, but I felt provoked to
have run after the troublesome animals for nothing, and you can't see the
fine wheat of the good God trampled and destroyed without answer.

I went on into the big wheat-field without meeting a single Christian


soul, though the mules seemed to increase in numbers every minute. I
meant to catch at least one, which would serve as proof when I complained
to the authorities of the damage done to the farm.

I singled out one which seemed to be more docile than the rest, but when
I got near him I saw that he wasn't the same game, but the lean little horse
with a bell round his neck; which bell, as I learned later, is called in the
Bourbonnais districts a clairin, and the horse that wears it goes by the same
name. Not knowing the habits of these animals, it was by mere good luck
that I chanced upon the right way to manage them, which was to get hold of
the bell-horse, or clairin, and lead him away, being certain to catch a mule
or two afterwards if I succeeded.

The little animal, which seemed good-natured and well-trained, let me


pet him and lead him away without seeming to care; but as soon as he
began to walk, the bell on his neck began to jingle, and great was my
surprise to see the crowd of mules, scattered here and there among the
wheat, come trooping upon us, and tearing after me like bees after their
queen. I saw then that they were trained to follow the clairin, and that they
knew its ring just as well as good monks know the bell for matins.
SIXTH EVENING.

I did not long debate what I should do with the mischievous horde. I
went straight for the manor of Aulnières, thinking that I could easily open
the gates of the yard and drive the beasts in; after which I would wake the
farmers and they, when informed of the damage done, would do as they saw
fit.

I was just nearing the yard when, as it happened, I fancied I saw a man
running on the road behind me. I cocked my gun, thinking that if he was the
muleteer I should have a bone to pick with him. But it was Joseph, on his
way back to Aulnières after escorting Brulette to the village.

"What are you doing here, Tiennet?" he said to me, coming up as fast as
he could run. "Didn't I tell you not to leave home to-night? You are in
danger of death; Let go that horse and don't meddle with those mules. What
can't be helped must be endured for fear of worse evils."

"Thank you, comrade," I answered. "Your fine friends pasture their


cavalry in my field and you expect me to say nothing! Very good, very
good! go your ways if you are afraid yourself, but as for me, I shall see the
thing out, and get justice done by law or might."

As I spoke, having stopped a moment to answer him, we heard a dog


bark in the distance, and José, seizing the rope by which I was leading the
horse, cried out:—

"Quick, Tiennet! here come the muleteer's dogs! If you don't want to be
torn in pieces, let go the horse; see, he hears them and you can't do anything
with him now."

Sure enough, the clairin pricked his ears to listen; then laying them back,
which is a great sign of ill-temper, he began to neigh and rear and kick,
which brought all the mules capering round us, so that we had scarcely time
to get out of the way before the whole of them rushed by at full speed in the
direction of the dogs.

I was not satisfied to yield, however, and as the dogs, having called in
their wild troop, showed signs of making straight for us, I took aim with my
gun as if to shoot the first of the two that came at me. But Joseph went up to
the dog and made him recognize him.

"Ah! Satan," he said to him, "the fault is yours. Why did you chase the
hares into the wheat instead of watching your beasts? When your master
wakes up you will be whipped if you are not at your post with Louveteau
and the clairin."

Satan, understanding that he was being reproved for his behavior,


obeyed Joseph, who called him towards a large tract of waste land where
the mules could feed without doing any damage, and where Joseph, as he
told me, intended to watch them until their master returned.

"Nevertheless, José," I said to him, "matters won't blow over as quietly


as you think for; and if you will not tell me where the owner of these mules
hides himself, I shall stay here and wait for him, and say what I think to his
face, and demand reparation for the harm done."

"You don't know muleteers if you think it easy to get the better of them,"
replied Joseph. "I believe it is the first time any of them have ever passed
this way. It is not their usual road; they commonly come down from the
Bourbonnais forests through those of Meillant and L'Éspinasse into the
Cheurre woods. I happened accidentally to meet them in the forest of Saint-
Chartier, where they were halting on their way to Saint-Août; among them
was the man who is here now, whose name is Huriel, and who is on his way
to the iron works of Ardentes for coal and ore. He has been kind enough to
come two hours out of his way to oblige me. And it may be that, having left
his companions and the heath country through which the roads frequented
by men of his business run, where his mules can pasture without injuring
any one, he fancied he was just as free here in our wheat-lands; and though
he is altogether wrong, it would be best not to tell him so."
"He will have to know what I think," I answered, "for I see now how the
land lays. Ho! ho! muleteers! we know what they are. You remind me of
things I have heard my godfather, Gervais the forester, tell of. Muleteers are
lawless men, wicked and ignorant, who would kill a man with as little
conscience as they would a rabbit. They think they have a right to feed their
beasts at the expense of the peasantry, and if any one complains who is not
strong enough to resist them, they will come back later or send their
comrades to kill the poor man's cattle or burn his house, or worse; they live
on plunder, like thieves at a fair."

"As you have heard those things," said Joseph, "you must see that we
should be very foolish to draw down some great harm to the farmers and
my master and your family in revenge for a little one. I don't defend what
has been done, and when Maître Huriel told me he was going to pasture his
mules and camp at Nohant, as he does elsewhere at all seasons, I told him
about this bit of common and advised him not to let his mules stray into the
wheat-fields. He promised he would not; for he is not at all ill-disposed. But
his temper is quick, and he wouldn't back down if a whole crowd of people
fell upon him. Please go back to your own property, keep clear of these
beasts, and don't pick a quarrel with anybody. If you are questioned to-
morrow, say you saw nothing; for to swear in a court of law against a
muleteer is quite as dangerous as to swear against a lord."

Joseph was right; so I gave in, and took the road towards home; but I
was not satisfied, for backing down before a threat is wisdom to old men
and bitter wrath to young ones.

As I neared the house, quite resolved not to go to bed, I fancied I saw a


light in it. I quickened my steps and finding the door, which I had latched,
wide open, I rushed in and saw a man in the chimney-corner lighting his
pipe by a blaze he had made. He turned round and looked at me as quietly
as if the house were his, and I recognized the charcoal-blackened man
whom Joseph called Huriel.

My wrath returned; and closing the door behind me I exclaimed as I


went up to him:—
"Well done! I am glad you have walked into the lion's den. I've a couple
of words to say to you."

"Three, if you like," he said, squatting on his heels and drawing fire
through his pipe, for the tobacco was damp and did not light readily. Then
he added, as if scornfully, "There's not even a pair of tongs to pick up the
embers."

"No," I retorted, "but there's a good cudgel to flatten you out with."

"And pray why?" he demanded without losing an atom of assurance.


"You are angry because I have entered your house without permission. Why
were not you at home? I knocked on the door and asked to light my pipe, a
thing no one ever refuses. Silence gives consent, so I pulled the latch. Why
did not you lock the door if you are afraid of thieves? I looked at the beds
and saw the house was empty; I lighted my pipe, and here I am. What have
you to say to that?"

So saying, as I tell you, he took up his gun as if to examine the lock, but
it was really as much as to say, "If you are armed, so am I; two can play at
that game."

I had an idea of aiming at him to make him respect me; but the longer I
looked at his blackened face the more I was struck with his frank air and his
lively, jovial eye, so that I ceased to be angry and felt only piqued. He was a
young man of twenty-five, tall and strong, and if washed and shaved, would
have been quite a handsome fellow. I put my gun down beside the wall and
went up to him without fear.

"Let us talk," I said, sitting down by him.

"As you will," he answered, laying aside his gun.

"Is it you they call Huriel?"

"And you Étienne Depardieu?"

"How do you know my name?"


"Just as you know mine,—from our little friend Joseph Picot."

"Then they are your mules that I have caught?"

"Caught!" he exclaimed, half-rising in astonishment. Then, laughing, he


added: "You are joking! you can't catch my mules."

"Yes, I can," I said, "if I catch and lead the horse."

"Ha! you have learned the trick?" he cried, with a defiant air. "But how
about the dogs?"

"I don't fear dogs when I've a gun in my hand."

"Have you killed my dogs?" he shouted, jumping up. His face flamed
with anger, which let me know that though he might be jovial by nature he
could be terrible at times.

"I might have killed your dogs," I replied, "and I might have led your
mules into a farmyard where you would have found a dozen strong fellows
to deal with. I did not do it because Joseph told me you were alone, and that
it was not fair for a mere piece of mischief to put you in danger of losing
your life. I agreed to that reason. But now we are one to one. Your beasts
have injured my field and my sister's field, and what's more, you have
entered my house in my absence, which is improper and insolent. You will
beg pardon for your behavior and pay damages for my oats, or—"

"Or what?" he said, with a sneer.

"Or we will settle the matter according to the laws and customs of Berry,
which are, I think, the same as those of the Bourbonnais where fists are
lawyers."

"That is to say, the law of the strongest," he replied, turning up his


sleeves. "That suits me better than going before the justices, and if you are
really alone and don't play traitor—"

"Come outside," I said, "and you shall see that I am alone. You are
wrong to insult me in that way, for I might have shot you as I came in. But
guns are made to kill wolves and mad dogs. I didn't want to treat you like a
beast, and though you have a chance to shoot me at this moment I think it
cowardly for men to pepper each other with balls when fists were given to
human beings to fight with. As to that, I don't think you are a greater fool
than I, and if you have got pluck—"

"My lad," he said, pulling me towards the fire to look at me, "perhaps
you are making a mistake. You are younger than I am, and though you look
pretty wiry and solid I wouldn't answer for that skin of yours. I would much
rather you spoke me fairly about your damages and trusted to my honesty."

"Enough," I said, knocking his hat into the ashes to anger him; "the best
bruised of us two will get justice presently."

He quietly picked up his hat and laid it on the table saying,—

"What are the rules in this part of the country?"

"Among young fellows," I replied, "there is no ill-will or treachery. We


seize each other round the body, or strike where we can except on the face.
He who takes a stick or a stone is thought a scoundrel."

"That is not exactly our way," he said. "But come on, I shan't spare you;
if I hit harder than I mean to, surrender; for there's a time, you know, when
one can't answer for one's self."

Once outside on the thick sward we off coats (not to spoil them
uselessly), and began to wrestle, clasping thighs and lifting one another
bodily. I had the advantage of him there, for he was taller than I by a head,
and in bending over he gave me a better grip. Besides, he was not angry,
and thinking he would soon get the better of me, he didn't put forth his
strength. So being, I was able to floor him at the third round, falling on top
of him, but there he recovered himself, and before I had time to strike he
wound himself round me like a snake and squeezed me so closely that I lost
my breath. Nevertheless, I managed to get up first and attack him again.
When he saw that he had to do with a free hitter, and caught it well in the
stomach and on the shoulders, he gave me as good as I sent, and I must own
that his fist was like a sledge-hammer. But I would have died sooner than
show I felt it; and each time that he cried out, "Surrender!" I plucked up
courage and strength to pay him in his own coin. So for a good quarter of an
hour the fight seemed even. Presently, however, I felt I was getting
exhausted while he was only warming to the work; for if he had less
activity than I, his age and temperament were in his favor. The end of it was
that I was down beneath him and fairly beaten and unable to release myself.
But for all that I wouldn't cry mercy; and when he saw that I would rather
be killed he behaved like a generous fellow.

"Come, enough!" he cried, loosing his grip on my throat; "your will is


stronger than your bones, I see that, and I might break them to bits before
you would give in. That's right! and as you are a true man let us be friends. I
beg your pardon for entering your house; and now let us talk over the
damage my mules have done to you. I am as ready to pay you as to fight
you; and afterwards, you shall give me a glass of wine so that we may part
good friends."

The bargain concluded, I pocketed three crowns which he paid me for


myself and my brother-in-law; then I drew the wine and we sat down to
table. Three flagons of two pints each disappeared, for we were both thirsty
enough after the game we had been playing, and Maître Huriel had a
carcass which could hold as much as he liked to put into it. I found him a
good fellow, a fine talker, and easy to get on with; and I, not wishing to
seem behindhand in words or actions, filled his glass every two minutes and
swore friendship till the roof rang.

Apparently, he felt no effects of the fight. I felt them badly enough; but
not wishing to show it, I proposed a song, and squeezed one, with some
difficulty, from my throat, which was still hot from the grip of his hands. He
only laughed.

"Comrade," said he, "neither you nor yours know anything about
singing. Your tunes are as flat and your wind as stifled as your ideas and
your pleasures. You are a race of snails, always snuffing the same wind and
sucking the same bark; for you think the world ends at those blue hills
which limit your sky and which are the forests of my native land. I tell you,
Tiennet, that's where the world begins, and you would have to walk pretty
fast for many a night and day before you got out of those grand woods, to
which yours are but a patch of pea-brush. And when you do get out of them
you will find mountains and more forests, such as you have never seen, of
the tall handsome fir-trees of Auvergne, unknown to your rich plains. But
what's the good of telling you about these places that you will never see?
You Berry folks are like stones which roll from one rut to another, coming
back to the right hand when the cart-wheels have shoved them for a time to
the left. You breathe a heavy atmosphere, you love your ease, you have no
curiosity; you cherish your money and don't spend it, but also you don't
know how to increase it; you have neither nerve nor invention. I don't mean
you personally, Tiennet; you know how to fight (in defence of your own
property), but you don't know how to acquire property by industry as we
muleteers do, travelling from place to place, and taking, by fair means or
foul, what isn't given with a good will."

"Oh! I agree to all that," I answered; "but don't you call yours a brigand's
trade? Come, friend Huriel, wouldn't it be better to be less rich and more
honest? for when it comes to old age will you enjoy your ill-gotten property
with a clear conscience?"

"Ill-gotten! Look here, friend Tiennet," he said, laughing, "you who


have, I suppose, like all the small proprietors about here, a couple of dozen
sheep, two or three goats, and perhaps an old mare that feeds on the
common, do you go and offer reparation if, by accident, your beasts bark
your neighbor's trees and trample his young wheat? Don't you call in your
animals as fast as you can, without saying a word about it; and if your
neighbors take the law of you, don't you curse them and the law too? And if
you could, without danger, get them off into a corner, wouldn't you make
amends to yourself by belaboring their shoulders? I tell you, it is either
cowardice or force that makes you respect the law, and it is because we
avoid both that you blame us, out of jealousy of the freedom that we have
known how to snatch."

"I don't like your queer morality, Huriel; but what has all this got to do
with music? Why do you laugh at my song? Do you know a better?"

"I don't pretend to, Tiennet; but I tell you that music, liberty, beautiful
wild scenery, lively minds, and, if you choose, the art of making money
without getting stupefied,—all belong together like fingers to the hand. I
tell you that shouting is not singing; you can bellow like deaf folks in your
fields and taverns, but that's not music. Music is on our side of those hills,
and not on yours. Your friend Joseph felt this, for his senses are more
delicate than yours; in fact, my little Tiennet, I should only lose my time in
trying to show you the difference. You are a Berrichon, as a swallow is a
swallow; and what you are to-day you will be fifty years hence. Your head
will whiten, but your brain will never be a day older."

"Why, do you think me a fool?" I asked, rather mortified.

"Fool? Not at all," he said. "Frank as to heart and shrewd as to interest,


—that's what you are and ever will be; but living in body and lively in soul
you never can be. And this is why, Tiennet," he added, pointing to the
furniture of the room. "See these big-bellied beds where you sleep in
feathers up to your eyes. You are spade and pickaxe folk,—toilers in the
sun,—but you must have your downy beds to rest in. We forest fellows
would soon be ill if we had to bury ourselves alive in sheets and blankets. A
log hut, a fern bed,—that's our home and our furniture; even those of us
who travel constantly and don't mind paying the inn charges, can't stand a
roof over our heads; we sleep in the open air in the depth of winter, on the
pack-saddles of our mules, with the snow for a coverlet. Here you have
dresses and tables and chairs and fine china, ground glass, good wine, a
roasting-jack and soup-pots, and heaven knows what? You think you must
have all that to make you happy; you work your jaws like cows that chew
the cud; and so, when obliged to get upon your feet and go back to work,
you have a pain in your chest two or three times a day. You are heavy, and
no gayer at heart than your beasts of burden. On Sundays you sit, with your
elbows on the table, eating more than your hunger tells you to, and drinking
more than your thirst requires; you think you are amusing yourself by
storing up indigestion and sighing after girls who are only bored with you
though they don't know why,—your partners in those dragging dances in
rooms and barns where you suffocate; turning your holidays and festivals
into a burden the more upon your spirits and stomachs. Yes, Tiennet, that's
the life you live. To indulge your ease you increase your wants, and in order
to live well you don't live at all."
"And how do you live, you muleteers?" I said, rather shaken by his
remarks. "I don't speak now of your part of the country, of which I know
nothing, but of you, a muleteer, whom I see there before me, drinking hard,
with your elbows on the table, not sorry to find a fire to light your pipe and
a Christian to talk with. Are you made different from other men? When you
have led this hard life you boast of for a score of years, won't you spend
your money, which you have amassed by depriving yourself of everything,
in procuring a wife, a house, a table, a good bed, good wine, and rest at
last?"

"What a lot of questions, Tiennet!" replied my guest. "You argue fairly


well for a Berrichon. I'll try to answer you. You see me drink and talk
because I am a man and like wine. Company and the pleasures of the table
please me even more than they do you, for the very good reason that I don't
need them and am not accustomed to them. Always afoot, snatching a
mouthful as I can, drinking at the brooks, sleeping under the first oak I
come to, of course it is a feast for me to come across a good table and
plenty of good wine; but it is a feast, and not a necessity. To me, living
alone for weeks at a time, the society of a friend is a holiday; I say more to
him in one hour's talk than you would say in a day at a tavern. I enjoy all,
and more, than you fellows do, because I abuse nothing. If a pretty girl or a
forward woman comes after me in the woods to tell me that she loves me,
she knows I have no time to dangle after her like a ninny and wait her
pleasure; and I admit that in the matter of love I prefer that which is soon
found to that you have to search and wait for. As to the future, Tiennet, I
don't know if I shall ever have a home and a family; but if I do, I shall be
more grateful to the good God than you are, and I shall enjoy its sweetness
more, too. But I swear that my helpmate shall not be one of your buxom,
red-faced women, let her be ever so rich. A man who loves liberty and true
happiness never marries for money. I shall never love any woman who isn't
slender and fair as a young birch,—one of those dainty, lively darlings, who
grow in the shady woods and sing better than your nightingales."

"A girl like Brulette," I thought to myself. "Luckily she isn't here, for
though she despises all of us, she might take a fancy to this blackamoor, if
only by way of oddity."
The muleteer went on talking.

"And so, Tiennet, I don't blame you for following the road that lies
before you; but mine goes farther and I like it best. I am glad to know you,
and if you ever want me send for me. I can't ask the same of you, for I know
that a dweller on the plains makes his will and confesses to the priest before
he travels a dozen leagues to see a friend. But with us it isn't so; we fly like
the swallows, and can be met almost everywhere. Good-bye. Shake hands.
If you get tired of a peasant's life call the black crow from the Bourbonnais
to get you out of it; he'll remember that he played the bagpipe on your back
without anger, and surrendered to your bravery."

SEVENTH EVENING.

Thereupon Huriel departed to find Joseph, and I went to bed; for if up to


that time I had concealed out of pride and forgotten out of curiosity the ache
in my bones, I was none the less bruised from head to foot. Maître Huriel
walked off gayly enough, apparently without feeling anything, but as for me
I was obliged to stay in bed for nearly a week, spitting blood, with my
stomach all upset. Joseph came to see me and did not know what to make of
it all; for I was shy of telling him the truth, because it appeared that Huriel,
in speaking to him of me, hadn't mentioned how we came to an explanation.

Great was the amazement of the neighborhood over the injury done to
the wheat-fields of Aulnières, and the mule-tracks along the roads were
something to wonder at. When I gave my brother-in-law the money I had
earned with my sore bones I told him the whole story secretly, and as he
was a good, prudent fellow, no one got wind of it.

Joseph had left his bagpipe at Brulette's and could not make use of it,
partly because the haying left him no time, and also because Brulette,
fearing Carnat's spite, did her best to put him out of the notion of playing.
Joseph pretended to give in; but we soon saw that he was concocting
some other plan and thinking to hire himself out in another parish, where he
could slip his collar and do as he pleased.

About midsummer he gave warning to his master to get another man in


his place; but it was impossible to get him to say where he was going; and
as he always replied, "I don't know," to any question he didn't choose to
answer, we began to think he would really let himself be hired in the
market-place, like the rest, without caring where he went.

As the Christians' Fair, so-called, is one of the great festivals of the town,
Brulette went there to dance, and so did I. We thought we should meet
Joseph and find out before the end of the day what master and what region
he had chosen. But he did not appear either morning or evening on the
market-place. No one saw him in the town. He had left his bagpipe, but he
had carried off, the night before, all the articles he usually left in Père
Brulet's house.

That evening as we came home,—Brulette and I and all her train of


lovers with the other young folks of our parish,—she took my arm, and
walking on the grassy side of the road away from the others, she said:—

"Do you know, Tiennet, that I am very anxious about José? His mother,
whom I saw just now in town, is full of trouble and can't imagine where he
has gone. A long time ago he told her he thought of going away; but now
she can't find out where, and the poor woman is miserable."

"And you, Brulette," I said, "it seems to me that you are not very gay,
and you haven't danced with the same spirit as usual."

"That's true," she answered; "I have a great regard for the poor lunatic
fellow,—partly because I ought to have it, on account of his mother, and
then for old acquaintance' sake, and also because I care for his fluting."

"Fluting! does it really have such an effect upon you?"

"There's nothing wrong in its effect, cousin. Why do you find fault with
it?"
"I don't; but—"

"Come, say what you mean," she exclaimed, laughing; "for you are
always chanting some sort of dirge about it, and I want to say amen to you
once for all, so that I may hear the last of it."

"Well then, Brulette," I replied, "we won't say another word about
Joseph, but let us talk of ourselves. Why won't you see that I have a great
love for you? and can't you tell me that you will return it one of these
days?"

"Oh! oh! are you talking seriously, this time?"

"This time and all times. It has always been serious on my part, even
when shyness made me pretend to joke about it."

"Then," said Brulette, quickening her step with me that the others might
not overhear us, "tell me how and why you love me; I'll answer you
afterwards."

I saw she wanted compliments and flattery, but my tongue was not very
ready at that kind of thing. I did my best, however, and told her that ever
since I came into the world I had never thought of any one but her; for she
was the prettiest and sweetest of girls, and had captivated me even before
she was twelve years old.

I told nothing that she did not know already; indeed she said so, and
owned she had seen it at the time we were catechised. But she added
laughing:—

"Now explain why you have not died of grief, for I have always put you
down; and tell me also why you are such a fine-grown, healthy fellow, if
love, as you declare, has withered you."

"That's not talking seriously, as you promised me," I said.

"Yes, it is," she replied; "I am serious, for I shall never choose any one
who can't swear that he has never in his life fancied, or loved, or desired
any girl but me."

"Then it is all right, Brulette," I cried. "If that's so, I fear nobody, not
even that José of yours, who, I will allow, never looked at a girl in his life,
for his eyes can't even see you, or he wouldn't go away and leave you."

"Don't talk of Joseph; we agreed to let him alone," replied Brulette,


rather sharply, "and as you boast of such very keen eyes, please confess that
in spite of your love for me you have ogled more than one pretty girl. Now,
don't tell fibs, for I hate lying. What were you saying so gayly to Sylvia
only last year? And it isn't more than a couple of months since you danced
two Sundays running, under my very nose, with that big Bonnina. Do you
think I am blind, and that nobody comes and tells me things?"

I was rather mortified at first; but then, encouraged by the thought that
there was a spice of jealousy in Brulette, I answered, frankly,—

"What I was saying to such girls, cousin, is not proper to repeat to a


person I respect. A fellow may play the fool sometimes to amuse himself,
and the regret he feels for it afterwards only proves that his heart and soul
had nothing to do with it."

Brulette colored; but she answered immediately,—

"Then, can you swear to me, Tiennet, that my character and my face
have never been lowered in your esteem by the prettiness or the amiability
of any other girl,—never, since you were born?"

"I will swear to it," I said.

"Swear, then," she said; "but give all your mind, and all your religion to
what you are going to say. Swear by your father and your mother, by your
conscience and the good God, that no girl ever seemed to you as beautiful
as I."

I was about to swear, when, I am sure I don't know why, a recollection


made my tongue tremble. Perhaps I was very silly to heed it; a shrewder
fellow wouldn't have done so, but I couldn't lie at the moment when a
certain image came clearly before my mind. And yet, I had totally forgotten
it up to that very moment, and should probably never have remembered it at
all if it had not been for Brulette's questions and adjurations.

"You are in no hurry to swear," she said, "but I like that best; I shall
respect you for the truth and despise you for a lie."

"Well then, Brulette," I answered, "as you want me to tell the exact truth
I will do so. In all my life I have seen two girls, two children I might say,
between whom I might have wavered as to preference if any one had said to
me (for I was a child myself at the time), 'Here are two little darlings who
may listen to you in after days; choose which you will have for a wife.' I
should doubtless have answered, 'I choose my cousin,' because I knew how
amiable you were, and I knew nothing of the other, having only seen her for
ten minutes. And yet, when I came to think of it, it is possible I might have
felt some regret, not because her beauty was greater than yours, for I don't
think that possible, but because she gave me a good kiss on both cheeks,
which you never gave me in your life. So I conclude that she is a girl who
will some day give her heart generously, whereas your discretion holds me
and always has held me in fear and trembling."

"Where is she now?" asked Brulette, who seemed struck by what I said.
"What is her name?"

She was much surprised to hear that I knew neither her name nor the
place she lived in, and that I called her in my memory "the girl of the
woods." I told her the little story of the cart that stuck in the mud, and she
asked me a variety of questions which I could not answer, my recollections
being much confused and the whole affair being of less interest to me than
Brulette supposed. She turned over in her head every word she got out of
me, and it almost seemed as if she were questioning herself, with some
vexation, to know if she were pretty enough to be so exacting, and whether
frankness or coyness was the best way of pleasing the lads.

Perhaps she was tempted for a moment to try coquetry and make me
forget the little vision that had come into my head, and which, for more
reasons than one, had displeased her; but after a few joking words she
answered seriously:—
"No, Tiennet, I won't blame you for having eyes to see a pretty girl when
the matter is as innocent and natural as you tell me; but nevertheless it
makes me think seriously, I hardly know why, about myself. Cousin, I am a
coquette. I feel the fever of it to the very roots of my hair. I don't know that
I shall ever be cured of it; but, such as I am, I look upon love and marriage
as the end of all my comfort and pleasure. I am eighteen,—old enough to
reflect. Well, reflection comes to me like a blow on the stomach; whereas
you have been considering how to get yourself a happy home ever since
you were fifteen or sixteen, and your simple heart has given you an honest
answer. What you need is a wife as simple and honest as yourself, without
caprices, or pride, or folly: I should deceive you shamefully if I told you
that I am the right kind of girl for you. Whether from caprice or distrust I
don't know, but I have no inclination for any of those I can choose from,
and I can't say that I ever shall have. The longer I live the more my freedom
and my light-heartedness satisfy me. Therefore be my friend, my comrade,
my cousin; I will love you just as I love Joseph, and better, if you are
faithful to our friendship; but don't think any more about marrying me. I
know that your relations would be opposed to it, and so am I, in spite of
myself, and with great regret for disappointing you. See, the others are
coming after us to break up this long talk. Promise me not to sulk; choose a
course; be my brother. If you say yes, we'll build the midsummer bonfire
when we get back to the village, and open the dance together gayly."

"Well, Brulette," I answered, sighing, "it shall be as you say. I'll do my


best not to love you, except as you wish, and in any case I shall still be your
cousin and good friend, as in duty bound."

She took my hand and ran with me to the village market-place, delighted
to make her lovers scamper after her; there we found that the old people had
already piled up the fagots and straw of the bonfire. Brulette, being the first
to arrive, was called to set fire to it, and soon the flames darted higher than
the church porch.

We had no music to dance by until Carnat's son, named François, came


along with his bagpipe; and he was very willing to play, for he, too, like the
rest, was putting his best foot foremost to please Brulette.
So we opened the ball joyously, but after a minute or two everybody
cried out that the music tired their legs. François Carnat was new at the
business, and though he did his best, we found we couldn't get along. He let
us make fun of him, however, and kept on playing,—being, as I suppose,
rather glad of the practice, as it was the first time he had played for people
to dance.

Nobody liked it, however, and when the young men found that dancing,
instead of resting their tired legs, only tired them more, they talked of
bidding good-night or spending the evening in the tavern. Brulette and the
other girls exclaimed against that, and told us we were unmannerly lads and
clodhoppers. This led to an argument, in the midst of which, all of a sudden,
a tall, handsome fellow appeared, before it could be seen where he came
from.

"Hallo there, children!" he cried, in such a loud tone that it drowned our
racket and forced us to listen. "If you want to go on dancing, you shall.
Here's a bagpiper who will pipe for you as long as you like, and won't ask
anything for his trouble. Give me that," he said to François Carnat, taking
hold of his bagpipe, "and listen; it may do you good, for though music is
not my business, I know more about it than you."

Then, without waiting for François's consent, he blew out the bag and
began to play, amid cries of joy from the girls and with many thanks from
the lads.

At his very first words I had recognized the Bourbonnais accent of the
muleteer, but I could hardly believe my eyes, so changed was he for the
better in looks. Instead of his coal-dusty smock-frock, his old leathern
gaiters, his battered hat, and his grimy face, he had a new suit of clothes of
fine white woollen stuff streaked with blue, handsome linen, a straw hat
with colored ribbons, his beard trimmed, his face washed and as rosy as a
peach. In short, he was the handsomest man I ever saw; grand as an oak,
well-made in every part of him, clean-limbed and vigorous; with teeth that
were bits of ivory, eyes like the blades of a knife, and the affable air and
manners of a gentleman. He ogled all the girls, smiled at the beauties,
laughed with the plain ones, and was merry, good company with every one,
encouraging and inspiriting the dancers with eye and foot and voice (for he
did not blow much into his bagpipe, so clever was he in managing his
wind), and shouting between the puffs a dozen drolleries and funny sayings,
which put everybody in good humor for the evening.

Moreover, instead of doling out exact measure like an ordinary piper,


and stopping short when he had earned his two sous for every couple, he
went on bagpiping a full quarter of an hour, changing his tunes you couldn't
tell how, for they ran into one another without showing the join; in short, it
was the best reel music ever heard, and quite unknown in our parts, but so
enlivening and danceable that we all seemed to be flying in the air instead
of jigging about on the grass.

I think he would have played and we should have danced all night
without getting tired, if it had not been that Père Carnat, hearing the music
from the wine-shop of La Biaude and wondering much that his son could
play so well, came proudly over to listen. But when he saw his own bagpipe
in the hands of a stranger, and François dancing away without seeing the
harm of yielding his place, he was furious; and pushing the muleteer from
behind, he made him jump from the stone on which he was perched into the
very middle of the dancers.

Maître Huriel was a good deal surprised, and turning round he saw
Carnat, red with anger, ordering him to give up the instrument.

You never knew Carnat the piper? He was getting in years even then, but
he was still as sturdy and vicious as an old devil.

The muleteer began by showing fight, but noticing Carnat's white hair,
he returned the bagpipe gently, remarking, "You might have spoken with
more civility, old fellow; but if you don't like me to take your place I give it
up to you,—all the more willingly that I should like to dance myself, if the
young people will allow a stranger in their company."

"Yes, yes! come and dance! you have earned it," cried the whole parish,
who had turned out to hear the fine music and were charmed with him,—
old and young both.
"Then," he said, taking Brulette's hand, for he had looked at her more
than at all the rest, "I ask, by way of payment, to be allowed to dance with
this pretty girl, even though she be engaged to some one else."

"She is engaged to me, Huriel," said I, "but as we are friends, I yield my


rights to you for this dance."

"Thank you," answered he, shaking hands; then he whispered in my ear,


"I pretended not to know you; but if you see no harm to yourself so much
the better."

"Don't say you are a muleteer and it is all right," I replied.

While the folks were questioning about the stranger, another fuss arose
at the musician's stone. Père Carnat refused to play or to allow his son to
play. He even scolded François openly for letting an unknown man supplant
him; and the more people tried to settle the matter by telling him the
stranger had not taken any money, the angrier he got. In fact when Père
Maurice Viaud told him he was jealous, and that the stranger could outdo
him and all the other neighboring players, he was beside himself with rage.

He rushed into the midst of us and demanded of Huriel whether he had a


license to play the bagpipes,—which made every body laugh, and the
muleteer most of all. At last, being summoned by the old savage to reply,
Huriel said, "I don't know the customs in your part of the country, old man,
but I have travelled enough to know the laws, and I know that nowhere in
France do artists buy licenses."

"Artists!" exclaimed Carnat, puzzled by a word which, like the rest of us,
he had never heard, "What does that mean? Are you talking gibberish?"

"Not at all," replied Huriel. "I will call them musicians if you like; and I
assert that I am free to play music wherever I please without paying toll to
the king of France."

"Well, well, I know that," answered Carnat, "but what you don't know
yourself is that in our part of the country musicians pay a tax to an
association of public players, and receive a license after they have been
tried and initiated."

"I know that too," said Huriel, "and I also know how much money is
paid into your pockets during those trials. I advise you not to try that upon
me. However, happily for you, I don't practise the profession, and want
nothing in your parts. I play gratis where I please, and no one can prevent
that, for the reason that I have got my degree as master-piper, which very
likely you have not, big as you talk."

Carnat quieted down a little at these words, and they said something
privately to each other that nobody heard, by which they discovered that
they belonged to the same corporation, if not to the same company. The two
Carnats, having no further right to object, as every one present testified that
Huriel had not played for money, departed grumbling and saying spiteful
things, which no one answered so as to be sooner rid of them.

As soon as they were gone we called on Marie Guillard, a lass with a


carrying voice, and made her sing, so that the stranger might have the
pleasure of dancing with us.

He did not dance in our fashion, though he accommodated himself very


well to the time and figures. But his style was much the best, and gave such
free play to his body that he really looked handsomer and taller than ever.
Brulette watched him attentively and when he kissed her, which is the
fashion in our parts when each dance begins, she grew quite red and
confused, contrary to her usual indifferent and easy way of taking a kiss.

I argued from this that she had rather overdone her contempt for love
when talking with me about mine; but I took no notice, and I own that in
spite of it all I felt a good deal set up on my own account by the fine
manners and talents of the muleteer.

When the dance was over he came up to me with Brulette on his arm,
saying,—

"It is your turn now, comrade; and I can't thank you better than by
returning the pretty dancer you lent me. She is a beauty like those of my
own land, and for her sake I do homage to the Berrichon girls. But why end
the evening so early? Is there no other bagpipe in the village besides that of
the old cross patch?"

"Yes, there is," said Brulette quickly, letting out the secret she wanted to
keep in her eagerness for dancing; then, catching herself up, she added,
blushing, "That is to say, there are shepherd's pipes, and herd-boys who can
play them after a fashion."

"Pipes indeed!" cried the muleteer; "if you happen to laugh they go
down your throat and make you cough! My mouth is too big for that kind of
instrument; and yet I want to make you dance, my pretty Brulette; for that is
your name, I have heard it," he said, drawing us both aside; "and I know,
too, that there's a fine bagpipe in your house, which came from the
Bourbonnais, and belongs to a certain Joseph Picot, your friend from
childhood, and your companion at the first communion."

"Oh! how did you know that?" cried Brulette, much astonished. "Do you
know our Joseph? Perhaps you can tell us where he has gone?"

"Are you anxious about him?" said Huriel, looking narrowly at her.

"So anxious that I will thank you with all my heart if you can give me
news of him."

"Well, I'll give you some, my pretty one; but not until you bring me his
bagpipe, which he wants me to carry to him at the place where he now is."

"What!" cried Brulette, "is he very far away?"

"So far that he has no idea of coming back."

"Is that true? Won't he come back? has he gone for good and all? That
ends my wanting to laugh and dance any more to-night."

"Ho, ho, pretty one!" cried Huriel; "so you are Joseph's sweetheart, are
you? He did not tell me that."

"I am nobody's sweetheart," answered Brulette, drawing herself up.


"Nevertheless," said the muleteer, "here is a token which he told me to
show you in case you hesitated to trust me with the bagpipe."

"Where is it? what is it?" I exclaimed.

"Look at my ear," said the muleteer, lifting a great lock of his curly black
hair and showing us a tiny silver heart hanging to a large earring of fine
gold, which pierced his ears after a fashion among the middle classes of
those days.

I think that earring began to open Brulette's eyes, for she said to Huriel,
"You can't be what you seem to be, but I see plainly that you are not a man
to deceive poor folks. Besides, that token is really mine, or rather it is
Joseph's, for it is a present his mother made to me on the day of our first
communion, and I gave it to him the next day as a remembrance, when he
left home to go to service. So, Tiennet," she said, turning to me, "go to my
house and fetch the bagpipe, and bring it over there, under the church
porch, where it is dark, so that people can't see where it comes from; for
Père Carnat is a wicked old man and might do my grandfather some harm if
he thought we were mixed up in the matter."

EIGHTH EVENING.

I did as I was told, not pleased, however, at leaving Brulette alone with
the muleteer in a place already darkened by the coming night. When I
returned, bringing the bagpipe, taken apart and folded up under my blouse, I
found them still in the same corner arguing over something with a good
deal of vehemence. Seeing me, Brulette said: "Tiennet, I take you to witness
that I do not consent to give this man that token which is hung on his
earring. He declares he cannot give it back because it belongs to Joseph, but
he also says that Joseph does not want it; it is a little thing, to be sure, not
worth ten sous, but I don't choose to give it to a stranger. I was scarcely
twelve years old when I gave it to José, and people must be suspicious to
see any meaning in that; but, as they will have it so, it is only the more
reason why I should refuse to give it to another."

It seemed to me that Brulette was taking unnecessary pains to show the


muleteer she was not in love with Joseph, and also that Huriel, on his side,
was very glad to find her heart was free. However that may be, he did not
trouble himself to stop courting her before me.

"My pretty one," he said, "you are too suspicious. I would not show your
gifts to any one, even if I had them to boast of; but I admit here, before
Tiennet, that you do not encourage me to love you. I can't say that that will
stop me; at any rate, you cannot hinder me from remembering you, and I
shall value this ten-sous token in my ear above anything I ever coveted.
Joseph is my friend, and I know he loves you; but the lad's affection is so
quiet he will never think of asking for his token again. So, if it is one year
or ten before we meet again, you will see it just where it is; that is, unless
the ear is gone."

So saying, he took Brulette's hand and kissed it, and then he set to work
to put the bagpipe together and fill it.

"What are you doing?" cried Brulette. "I told you that I had no heart to
amuse myself, now that Joseph has left his mother and friends for such a
time, and as for you, you'll be in danger of a fight if the other pipers should
come this way and find you playing."

"Bah!" said Huriel, "we'll see about that; don't be troubled for me,—you
must dance, Brulette, or I shall think you are really in love with an
ungrateful fellow who has left you."

Whether it was that Brulette was too proud to let him think that, or that
the dancing mania was too strong for her, it is certain that the bagpipe was
no sooner fitted and filled and beginning to sound than she held out no
longer and let me carry her off for the first reel.

You would hardly believe, friends, what cries of satisfaction and delight
filled the marketplace at the resounding noise of that bagpipe and the return
of the muleteer, for every one thought him gone. The dancing had flagged
and the company were about to disperse when he made his appearance once
more on the piper's stone. Instantly such a hubbub arose! no longer four to
eight couples were dancing, but sixteen to thirty-two, joining hands,
skipping, shouting, laughing, so that the good God himself couldn't have
got a word in edgewise. And presently every one in the market-place, old
and young, children who couldn't yet use their legs, grandfathers tottering
on theirs, old women jigging in the style of their youth, awkward folk who
couldn't get the time or the tune,—they all set to spinning; and, indeed, it is
a wonder the clock of the parish church didn't spin too. Fancy! the finest
music ever heard in our parts and costing nothing! It seemed as if the devil
had a finger in it, for the piper never asked to rest, and tired out everybody
except himself. "I'm determined to be the last," he cried when they advised
him to rest. "The whole parish shall give in before me; I intend to keep it up
till sunrise, and you shall all cry me mercy!" So on we went, he piping and
we twirling like mad.

Mère Biaude, who kept the tavern, seeing there was profit in it, brought
out tables and benches and something to eat and drink; as to the latter
article, she couldn't furnish enough for so many stomachs hungry by
dancing, so folks living near brought out for their friends and acquaintance
the victuals they had laid in for the week. One brought cheese, another a
bag of nuts, another the quarter of a kid, or a sucking pig, all of which were
roasted and broiled at a fire hastily built in the market-place. It was like a
wedding to which every one flocked. The children were not sent to bed, for
no one had time to think of them, and they fell asleep, like a heap of lambs,
on the piles of lumber which always lay about the market-place, to the wild
racket of the dance and the bagpipe, which never stopped except it was to
let the piper drink a jorum of the best wine.

The more he drank the gayer he was and the better he played. At last
hunger seized the sturdiest, and Huriel was forced to stop for lack of
dancers. So, having won his wager to bury us all, he consented to go to
supper. Everybody invited him and quarrelled for the honor and pleasure of
feasting him; but seeing that Brulette was coming to my table, he accepted
my invitation and sat down beside her, boiling over with wit and good
humor. He ate fast and well, but instead of getting torpid from digestion he
was the first to clink his glass for a song; and although he had blown his
pipe like a whirlwind for six hours at a stretch, his voice was as fresh and as
true as if he had done nothing. The others tried to hold their own, but even
our renowned singers soon gave it up for the pleasure of listening to him;
his songs were far beyond theirs, as much for the tunes as the words;
indeed, we had great difficulty in catching the chorus, for there was nothing
in his throat that wasn't new to our ears, and of a quality, I must own, above
our knowledge.

People left their tables to listen to him, and just as day was beginning to
dawn through the leaves a crowd of people were standing round him, more
bewitched and attentive than at the finest sermon.

At that moment he rose, jumped on his bench, and waved his empty
glass to the first ray of sunlight that shone above his head, saying, in a
manner that made us all tremble without knowing why or wherefore:—

"Friends, see the torch of the good God! Put out your little candles and
bow to the clearest and brightest light that shines on the world. And now,"
he said, sitting down again and setting his glass bottom up on the table, "we
have talked enough and sung enough for one night. What are you about,
verger? Go and ring the Angelus, that we may see who signs the cross like a
Christian; and that will show which of us have enjoyed ourselves decently,
and which have degraded our pleasure like fools. After we have rendered
thanks to God I must depart, my friends, thanking you for this fine fête and
all your signs of confidence. I owed you a little reparation for some damage
I did a few of you lately without intending it. Guess it if you can,—I did not
come here to confess it; but I think I have done my best to amuse you; and
as pleasure, to my thinking, is worth more than profit, I feel that I am quits
with you. Hush!" he added, as they began to question him, "hear the
Angelus!"

He knelt down, which led every one to do likewise, and do it, too, with
soberness of manner, for the man seemed to have some extraordinary power
over his fellows.

When the prayer ended we looked about for him, but he was gone,—and
so completely that there were people who rubbed their eyes, fancying that
they had dreamed this night of gayety and merriment.
NINTH EVENING.

Brulette was trembling all over, and when I asked her what the matter
was and what she was thinking of, she answered, rubbing her cheek with
the back of her hand, "That man is pleasant, Tiennet, but he is very bold."

As I was rather more heated than usual, I found courage to say,—

"If the lips of a stranger offend your skin, perhaps those of a friend can
remove the stain."

But she pushed me away, saying,—

"He has gone, and it is wisest to forget those who go."

"Even poor José?"

"He! oh, that's different," she answered.

"Why different? You don't answer me. Oh, Brulette, you care for—"

"For whom?" she said, quickly. "What is his name? Out with it, as you
know it!"

"It is," I said, laughing, "the black man for whose sake José has given
himself over to the devil,—that man who frightened you one night last
spring when you were at my house."

"No, no; nonsense! you are joking. Tell me his name, his business, and
where he comes from."

"No, I shall not, Brulette. You say we ought to forget the absent, and I
would rather you didn't change your mind."
The whole parish was surprised when it was known that the piper had
departed before they had thought of discovering who he was. To be sure, a
few had questioned him, but he gave them contradictory answers. To one he
said he was a Marchois and was named thus and so; to another he gave a
different name, and no one could make out the truth. I gave them still
another name to throw them off the scent,—not that Huriel the wheat-
spoiler need fear any one after Huriel the piper had turned everybody's
head, but simply to amuse myself and to tease Brulette. Then, when I was
asked where I had known him, I answered, laughing, that I didn't know him
at all,—that he had taken it into his head on arriving to accost me as a
friend, and that I had answered him in kind by way of a joke.

Brulette, however, sifted me to the bottom, and I was forced to tell her
what I knew; and though it was not much, she was sorry she had heard it,
for like most country folks, she had a great prejudice against strangers, and
muleteers in particular.

I thought this repugnance would soon make her forget Huriel; and if she
ever thought of him she never showed it, but continued to lead the gay life
she liked so well, declaring that she meant to be as faithful a wife as she
was thoughtless a girl, and therefore she should take her time and study her
suitors; and to me she kept repeating that she wanted my faithful, quiet
friendship, without any thought of marriage.

As my nature never turned to gloominess, I made no complaint; in fact,


like Brulette, I had a leaning to liberty, and I used mine like other young
fellows, taking pleasure where I found it, without the yoke. But the
excitement once over, I always came back to my beautiful cousin for gentle,
virtuous, and lively companionship, which I couldn't afford to lose by
sulking. She had more sense and wit than all the women and girls of the
neighborhood put together. And her home was so pleasant,—always neat
and well-managed, never pinched for means, and filled, during the winter
evenings and on all the holidays of the year, with the nicest young folks of
the parish. The girls liked to follow in my cousin's train, where there was
always a rush of young fellows to choose from, and where they could pick
up, now and then, a husband of their own. In fact, Brulette took advantage
of the respect they all felt for her to make the lads think of the lasses who

You might also like