Python客户端与服务端的简单网络编程示例

这篇文章主要介绍了python简单网络编程,详细介绍了客户端与服务端的具体实现技巧与相关注意事项,需要的朋友可以参考下

本文实例讲述了Python简单网络编程。分享给大家供大家参考,具体如下:

内容目录

1. 客户端(client.py)
2. 服务端(server.py)

一、客户端(client.py)

立即学习“Python免费学习笔记(深入)”;

import socketimport sysport = 70host = sys.argv[1]filename = sys.argv[2]s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.connect((host, port))fd = s.makefile("rw", 0)fd.write(filename + "")for line in fd.readlines():  sys.stdout.write(line)

登录后复制

程序通过socket.socket()建立一个Socket,参数告诉系统需要一个Internet Socket进行TCP通信。接着程序链接远程的主机名,并提供文件名。最后获得响应后在屏幕上打印出来。

测试

python client.py quux.org /

登录后复制

显示

iWelcome to gopher at quux.org! fake  (NULL) 0i  fake  (NULL) 0iThis server has a lot of information of historic interest, fake  (NULL) 0ifunny, or just plain entertaining -- all presented in Gopher. fake  (NULL) 0iThere are many mirrors here of rare or valuable files with the fake  (NULL) 0iaim to preserve them in case their host disappears. PLEASE READ  fake  (NULL) 0i"About This Server" FOR IMPORTANT NOTES AND LEGAL INFORMATION. fake  (NULL) 0i  fake  (NULL) 00About This Server /About This Server.txt gopher.quux.org 70 +1Archives  /Archives  gopher.quux.org 70 +1Books /Books gopher.quux.org 70 +1Communication /Communication gopher.quux.org 70 +iThis directory contains the entire text of the book  fake  (NULL) 0i"We the Media: Grassroots Journalism by the People, for the People"  fake  (NULL) 0iby Dan Gillmor in various formats. fake  (NULL) 0i  fake  (NULL) 0iFeel free to download and enjoy.  fake  (NULL) 01Computers /Computers gopher.quux.org 70 +1Current Issues and Events (Updated Apr. 23, 2002) /Current  gopher.quux.org 70 +1Development Projects  /devel gopher.quux.org 70 +0Gopher's 10th Anniversary /3.0.0.txt gopher.quux.org 701Government, Politics, Law, and Conflict  /Government gopher.quux.org 70 +0How To Help  /How To Help.txt  gopher.quux.org 70 +1Humor and Fun /Humor and Fun gopher.quux.org 70 +1Index to Quux.Org /Archives/index gopher.quux.org 701Internet  /Internet  gopher.quux.org 70 +1Other Gopher Servers  /Software/Gopher/servers  gopher.quux.org 701People /People gopher.quux.org 70 +1Reference /Reference gopher.quux.org 70 +1Software and Downloads /Software  gopher.quux.org 70 +1The Gopher Project /Software/Gopher  gopher.quux.org 700What's New /whatsnew.txt  gopher.quux.org 70 + 

登录后复制

二、服务端(server.py)

# coding: utf-8import sockethost = ''port = 51421s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)s.bind((host, port))s.listen(1)        #每次最多只有一个等候处理print "Server is running on port %d; press Ctrl-C to terminate." %portwhile 1:  clientsock, clientaddr = s.accept()  clientfile = clientsock.makefile('rw', 0)  clientfile.write("Welcome, " + str(clientaddr) + "")  clientfile.write("Please enter a string: ")  line = clientfile.readline().strip()  clientfile.write("You entered %d characters. " %len(line))  clientfile.close()  clientsock.close()

登录后复制

建立一个socket,设置成可复用的(reusable),绑定端口号51421(可选大于1024的任一值),调用listen()函数,开始等待来自客户端的请求,同时设定最多只有一个等候处理的链接。

主循环对a.accept()函数调用开始,程序连接一个客户端后立马停止,接收用户的输入。

运行一个例子

首先运行server.py

python server.py

登录后复制

另开一个终端,连接localhost的51421端口。 

jihite@ubuntu:~/web$ telnet localhost 51421Trying 127.0.0.1...Connected to localhost.Escape character is '^]'.Welcome, ('127.0.0.1', 59853)Please enter a string: mmYou entered 2 characters.Connection closed by foreign host.

登录后复制

以上就是Python客户端与服务端的简单网络编程示例的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2272111.html

(0)
上一篇 2025年2月27日 12:40:41
下一篇 2025年2月21日 13:59:27

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 如何利用Python在运算后得到浮点数值的方法详解

    在python中进行两个整数相除的时候,在默认情况下都是只能够得到整数的值,而在需要进行对除所得的结果进行精确地求值时,想在运算后即得到浮点值,那么如何进行处理呢? 1、修改被除数的值为带小数点的形式即可得到浮点值,这种方法在被除数事先知道…

    编程技术 2025年2月27日
    200
  • python多进程快还是多线程快?

    下面小编就为大家带来一篇python多进程和多线程究竟谁更快(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 python3.6 threading和multiprocessing 四核+三星250G-…

    2025年2月27日
    200
  • 关于Python安装官方whl包和tar.gz包的方法详解(收藏)

    下面小编就为大家带来一篇python安装官方whl包和tar.gz包的方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 Windows环境:   安装whl包:pip install wheel  …

    编程技术 2025年2月27日
    200
  • Python递归函数的定义与用法的实例分析

    这篇文章主要介绍了python递归函数定义与用法,结合具体实例形式分析了python递归函数的原理、实现技巧与相关注意事项,需要的朋友可以参考下 本文实例讲述了Python递归函数定义与用法。分享给大家供大家参考,具体如下: 递归函数 在函…

    编程技术 2025年2月27日
    200
  • 基于http请求与响应实现的网页源码读取的相关操作技巧

    这篇文章主要介绍了python实现的下载网页源码功能,涉及python基于http请求与响应实现的网页源码读取功能相关操作技巧,需要的朋友可以参考下 本文实例讲述了Python实现的下载网页源码功能。分享给大家供大家参考,具体如下: #!/…

    2025年2月27日
    200
  • 分享python中鸭子类和多态实例

    下面小编就为大家带来一篇老生常谈python之鸭子类和多态。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 一、 什么是多态 一种类型具有多种类型的能力允许不同的对象对同一消息做出灵活的反应以一种通用的方式对待…

    编程技术 2025年2月27日
    200
  • Python模拟登陆实例详解

    本篇文章主要介绍了python模拟登陆实现代码,这里整理了详细的代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 下面分享一个使用Python进行网站模拟登陆的小例子。 原理 使用Cookie技术,绕开网站登录验证。要使用到cooki…

    2025年2月27日
    200
  • Python字符串处理实例详解

    这篇文章主要为大家详细介绍了python字符串处理实现单词反转的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 Python字符串处理学习中,有一道简单但很经典的题目,按照单词对字符串进行反转,并对原始空格进行保留: 如:‘ I l…

    编程技术 2025年2月27日
    200
  • 详解Python中的字符编码

    下面小编就为大家带来一篇老生常谈python基础之字符编码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 前言 字符编码非常容易出问题,我们要牢记几句话: 1.用什么编码保存的,就要用什么编码打开 2.程序的…

    2025年2月27日
    200
  • 介绍一款Python打包工具(py2exe)

    下面小编就为大家带来一篇python之py2exe打包工具详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 下载Python对应版本的py2exe,使用这个工具可以将自己的程序打包成exe文件。 使用这个工…

    编程技术 2025年2月27日
    200

发表回复

登录后才能评论