Python基础——网络编程
2016-05-31 22:55
204 查看
在网络编程中主要是使用Socket(套接字)进行编程,套接字相当于应用程序访问下层网络的服务的接口,使用Socket可以是得不同主机之间进行通信,从而实现数据交换。
对于服务器端,服务器程序会在一个端口上监听服务请求,该服务器进程是一直存在的,当有客户端请求访问时,服务器进程会和客户端进程进行通信。
在Python中的套接字模块是socket模块。
调用
使用
当有客户端请求时,通过
当数据传输完毕,调用
利用Python实现一个简单的服务器端程序:
调用
调用
当连接成功后,可使用
当数据传输结束后,可调用
利用Python实现一个简单的客户端程序:
运行结果如下:
服务器端
客户端
1、Socket工作方式
套接字在工作的时候连接的两端分别为客户端和服务器端,对于客户端和服务器端的工作方式是不一样的。对于服务器端,服务器程序会在一个端口上监听服务请求,该服务器进程是一直存在的,当有客户端请求访问时,服务器进程会和客户端进程进行通信。
在Python中的套接字模块是socket模块。
2、服务器端
在上述的Socket工作原理中,服务器端程序会在一个端口上监听请求服务,当有客户端请求访问时,才和客户端进程进行通信。在Python中提供的socket模块可以较为方便的实现基本的原理。对于服务器端,当生成了套接字对象后,要实现与客户端进行通信,有如下的一些步骤:调用
bind()方法绑定一个套接字端口地址
使用
listen()方法对该端口进行客户端请求的监听
当有客户端请求时,通过
accept()方法生成一个连接对象,通过该连接对象发送和接受数据
当数据传输完毕,调用
close()方法将生成的连接关闭
利用Python实现一个简单的服务器端程序:
#coding:UTF-8 import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind(('127.0.0.1', 1234)) s.listen(10) while True: c, addr = s.accept() print "client address: ", addr c.send("Welcome!!!") c.close()
3、客户端
与服务器端相对应,客户端请求服务器端的访问,当服务器端接受了客户端的请求后,便可以与服务器端进行通信。客户端程序在生成套接字对象后的基本过程如下:调用
bind()方法绑定自己的请求套接字地址(该步骤可选)
调用
connect()方法连接服务器端的进程
当连接成功后,可使用
send()方法发送数据,使用
recv()函数接收数据
当数据传输结束后,可调用
close()方法关闭连接
利用Python实现一个简单的客户端程序:
#coding:UTF-8 import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind(('127.0.0.1', 2345)) s.connect(('127.0.0.1', 1234))#连接的是主机的地址和端口地址 info = s.recv(1024) print info s.close()
运行结果如下:
服务器端
客户端
相关文章推荐
- 计算机网络基础知识总结
- netty 解决TCP粘包与拆包问题(二)
- HTTP与HTTPS比较
- Go学习笔记三:网络通信
- Anddroid检测网络是否连接
- TCP和UDP的区别(热门面试题目)
- 多进程的网络服务的一般模型
- C#实现http多线程断点续传下载文件
- WCF实现全双工通信笔记
- 机器学习/CNN系列小问题(1):逻辑回归和神经网络之间有什么关系?
- java.lang.String cannot be cast to org.springframework.http.MediaType 异常分析
- 简单的网络技术及数据解析
- https -- 超文本传输安全协议
- 微信无法连接到服务器怎么诊断网络【微信高级教程3】
- Linux网络编程:一个简单的正向代理服务器的实现
- TCP慢启动、拥塞控制、快速重传、快速恢复
- java WEB学习笔记32:HttpSession 接口常用方法 及 HttpServletRequest接口中的Session方法 Demo
- 网络第一课
- xListView(上拉刷新下拉加载,xml解析)中添加网络请求
- 关于人工智能的幻想(九)人工智能与网络游戏第二部分