python:使用socket模块,进行服务器与客户端简单交互
2015-12-10 11:25
1141 查看
Socket模块:
在网络编程中的一个基本组件就是套接字(socket)。套接字基本上是两个端点的程序之间的“信息通道”。程序分布在不通的计算机上(通过网络连接),通过套接字相互发送信息。在python中的大多数的网络编程都隐藏了socket模块的基本细节,不直接和套接字交互。
套接字包括两个:服务器套接字和客户机套接字。在创建一个服务器套接字后,让它等待连接。这样它就在某个网络地址处(IP:端口)监听,直到有客户端套接字连接。连接完成后,服务器和客户端就可以进行交互了。
实例:
socket_Server端
测试结果:
1、运行socke_Server端
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/23/5802a4b8eb7ec4e910ff33cff253c67a.png)
2、客户端连接,并输入信息
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/23/45212bf204b85a923325df0ec6733385.png)
3、查看Server端的结果!可以看到客户端的地址和连接端口,以及客户端发过来的信息。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/23/42017a3de131bbc8568f7f1ac6a56274.png)
本文出自 “鬼迷心窍” 博客,请务必保留此出处http://dragondragon.blog.51cto.com/6170889/1721451
在网络编程中的一个基本组件就是套接字(socket)。套接字基本上是两个端点的程序之间的“信息通道”。程序分布在不通的计算机上(通过网络连接),通过套接字相互发送信息。在python中的大多数的网络编程都隐藏了socket模块的基本细节,不直接和套接字交互。
套接字包括两个:服务器套接字和客户机套接字。在创建一个服务器套接字后,让它等待连接。这样它就在某个网络地址处(IP:端口)监听,直到有客户端套接字连接。连接完成后,服务器和客户端就可以进行交互了。
实例:
socket_Server端
#!/usr/bin/env python #-*- coding:utf8 -*- #支持汉字 import socket #导入socket模块 s = socket.socket() #s等于socket模块中的socket类 host = '127.0.0.1' #socket模块中gethostname()函数能够得到当前主机名 port = 1286 #端口 s.bind((host,port)) #使用bind方法后,在调用listen方法监听某个地址; s.listen(5) #listen方法只有一个参数,表示服务器未处理的连接数(允许的排队长度) c,addr = s.accept() #accept方法会返回一个格式为(client,address)的元组,client是客户端套接字,address是地址 print "Got connection from" , addr #打印出目前连接的地址 while True: Data = c.recv(1024) #接收信息 if not Data:break #如果客户端传输过来的信息为空,关闭连接 print Data #打印客户端传来的信息 c.send(Data) #把客户端传来的信息传给客户端 s.close() #关闭套接字,可以把close写在循环外面,这样就可以一直通信,直到客户端主动断开socket_Client端
#!/usr/bin/env python #-*- coding:utf-8 -*- import socket s = socket.socket() host = '127.0.0.1' port = 1286 s.connect((host,port)) #需要连接的服务器,端口。本次测试为同一台主机 while True: user_input = raw_input('请输入要传输的信息:') s.send(user_input) #send方法把信息传输给服务器端 Data = s.recv(1024) #recv方法用于接收数据,后面1024是每次接收数据的最大长度,可以自己设定 print Data #打印服务器端传输过来的内容 s.close() #关闭连接
测试结果:
1、运行socke_Server端
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/23/5802a4b8eb7ec4e910ff33cff253c67a.png)
2、客户端连接,并输入信息
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/23/45212bf204b85a923325df0ec6733385.png)
3、查看Server端的结果!可以看到客户端的地址和连接端口,以及客户端发过来的信息。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/23/42017a3de131bbc8568f7f1ac6a56274.png)
本文出自 “鬼迷心窍” 博客,请务必保留此出处http://dragondragon.blog.51cto.com/6170889/1721451
相关文章推荐
- python中的subprocess子进程
- python configParser 模板
- python基础教程共60课-第21课函数的参数
- Beginning Python Chapter5
- python 编码
- Python模块学习系列(1)----glob
- python内建Exception类型
- Python常用内建模块
- Python第三方库使用 —— PIL
- Python与rrdtool的结合模块
- 为什么选择python
- SyntaxError: Non-ASCII character ‘\xe5′ in file和在代码中插入中文,python中文注释
- 自学Python爬虫遇到的一些问题
- 欢迎使用CSDN-markdown编辑器
- python操作文件常用写法
- python with语句理解
- Python_变量的作用域
- PyCharm_汉化包_编译器字体和背景怎么设置?_怎么添加多个python解释器?
- python 函数 字符串读入问题
- python 操作mysql数据库